Zum Inhalt
Custom detection Script Intune
Home » Custom Detection Script für Intune (win32 Apps)

Custom Detection Script für Intune (win32 Apps)

Immer noch gibt es viel Applikationen, die sich nicht via MSI oder einer einfachen Installations-Routine installieren lassen. Hier kommt dann in Intune (Microsoft Endpoint Manager) die win32 App ins Spiel. Diese erlaubt es uns in Intune, Routinen und Abläufe in einem Script abzuhandeln und die Installation im Anschluss mit einem weiteren Script (Custom Detection Script) oder vordefinierten Erkennungsregeln (MSI, EXE, File oder Registry Key) zu prüfen.

In den vergangenen Jahren haben sich dadurch bei mir einige verschiedene Variationen an Erkennungsregeln angesammelt, welche ich hier versuche zu sammeln.

Übe den Button oberhalb findest du meine aktuelle Sammlung von Custom Detection Script für Intune win32 Apps. Wichtig ist, dass du jeweils nur einen der Blocks für deine Erkennungs-Regel verwendest. Wenn du wissen möchtest, wie ein win32 App im Allgemeinen aufgebaut ist und wie ich diese handhabe, findest du hier (my take on win32 apps - Intune) einen meiner vergangenen Blog-Beiträge.

In meinem GitHub Repository findest du aktuell folgende Erkennungsregeln:

  • Erkennung einer EXE oder einer Datei
  • Validation-File mit spezifischem Inhalt (beispielsweise eine Versionierung)
  • Vorhandene EXE mit exakter Ziel-Version
    • oder höherer Version
    • und zusätzlichem Registry-Key
  • Registry-Key Abgleich
  • Erkennung eines Scheduled Task
  • Erkennung eines Scheduled Task inklusive Version

Erklärung / Beispiel EXE mit exakter Version

Die Erkennungsregeln sind alle so aufgebaut, dass zunächst die Kriterien definiert werden:

$ProgramPath = "C:\Program Files\XXXXX\XXXXXX.exe" $ProgramVersion_target = '1.0.2' $ProgramVersion_current = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ProgramPath).FileVersion
Codesprache: Power Shell (powershell)


Die Definitionen werden anschliessen einander gegenübergestellt oder geprüft und wenn sie zutreffen, wird "Found it!" ausgegeben. Dies signalisiert Intune, dass das Paket erfolgreich installiert ist. Alternativ kannst das Script auch mit 'exit 0' beenden.

if($ProgramVersion_current -eq $ProgramVersion_target){ Write-Host "Found it!" }
Codesprache: Power Shell (powershell)

Hast du weiter Erkennungsregeln, welche dir in deinem Alltag helfen oder an welchen du anstehst?
Lass es mich in den Kommentaren wissen. Ich ergänze meine Sammlung gerne.

8 Gedanken zu „Custom Detection Script für Intune (win32 Apps)“

  1. Hello,

    For the version checking, If EXE file is not installed or not a specific binaries, that does not work.
    In this cas downloed by invoke-request.

    I use this way :
    $file="C:\TeamViewerQS.exe"
    $MAJOR=$(Get-ChildItem $file | %{$_.VersionInfo} | Select *).FileVersionRaw.major
    $MINOR= $(Get-ChildItem $file | %{$_.VersionInfo} | Select *).FileVersionRaw.Minor
    # Major Minor Build Revision
    # ----- ----- ----- --------
    # 15 29 4 0

  2. Good morning.
    Do you know if the detection works after the app is installed?
    I have created a detection rule based on the availability of packages in winget repository. It checks the version in the web repository and compares it with the version installed on a computer, but I am not sure if the app would check again the detection (for future versions) after the app has been installed successfully.
    Regars

    1. In this case the detection would work only once. If you want to update the winget apps this way, I recommend doing it with a proactive remediation script.
      Or another way is to just check if the app is installed (regardless of the version) and to use a scheduled task to run the winget update command on a regular base.

  3. Pingback: My take on Intune Win32 apps | scloud

  4. Working on a way to create a proactive remediation to perform weekly restarts for Intune window 10 devices. We are wanting to restart each device every 5 days. Want to give the customer a toast notification to delay it for 2, 4, or 8 hours up to 2 times and on the 3rd they have to pick a restart time.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.