Mit dem win32 App Paketen bietet der Endpoint Manager / Intune eine hervorragende Möglichkeit komplexere Applikationen, Abläufe oder Einstellungen an die Geräte zu verteilen.
Eine Win32 App kann auf allen möglichen Kombinationen von Scripts, Daten und Installations-Dateien bestehen. Um dabei das Grundgerüst zu vereinheitlichen und ein Log bieten zu können, bestehen alle meine Pakete aus mindestens zwei Dateien, welche ich als Template nutze.

Table of Contents

Template

Weil ich ein grosser Fan von PowerShell bin und sich damit beinahe alles umsetzen lässt, habe ich für die Installations- sowie Deinstallations-Routine ein PowerShell Script.
Auch für Komplexe Erkennungsregeln nutze ich ein PowerShell Script.

Hier die Dateien, die ich in meinem template nutze:

install.ps1Verpackt die Installationsroutine in ein PowerShell Transkript (Log) und schreibt dieses auf das Gerät lokal.
uninstall.ps1
Verpackt die Deinstallationsroutine in ein PowerShell Transkript (Log) und schreibt dieses auf das Gerät lokal.
check.ps1Dient als Erkennungsregel für das Paket.
Optional, Erkennungsregeln können auch manuell im MEM erstellt werden.

Alternativ bieten auch das PSAppDeployToolkit eine hervorragende Möglichkeit Apps zu erstellen.

Inhalt / Erklärung install.ps1

Hier fügst du diene Installationsroutine ein.
Diese kann ganz einfach sein und einfach eine EXE / MSI mit einem Silent-Parameter aufrufen, oder aus vielen verschiedenen Befehlen und Abläufen bestehen.

Aus der Vorlage musst du die erste Zeile, sowie die Zeile 8 austauschen / ergänzen.

Vorlage install.ps1

Wenn du das Log an einem anderen Ort abgespeichert haben möchtest, kannst du einfach den Pfad innerhalb der Variabel $Path_local anpassen.

Inhalt / Erklärung uninstall.ps1

Das Script zur deinstallation ist vom Aufbau her identisch mit dem der Instillation. Auch hier passt du den Paket-Namen und die Routine an.

Vorlage uninstall.ps1

Inhalt / Erklärung check.ps1

Das Intune / der Microsoft Endpoint Manager weiss, ob ein Paket erfolgreich installiert wurde, müssen wir in jedem Win32 App eine Erkennungsregel hinterlegen. Diese kann entweder manuell erstellt werden (Online im UI) oder per PowerShell Script.

Bei den Manuellen Erkennungsregeln hats du die Auswahl zwischen MSI-Codes, Dateien und Registry-Einträgen. Diese Optionen sind bei Microsoft sehr gut dokumentiert und beschrieben: Detection rules, add and assign Win32 apps to Microsoft Intune | Microsoft Learn

Möchtest du eine Komplexe Regel erstellen, habe ich dir im Paket bereits viele Vorschläge zur Verfügung gestellt. Zusätzlich habe ich dazu einen separaten Beitrag geschrieben: Custom Detection Script für Intune (win32 Apps)

App-Paket (intunewin) erstellen und hochladen

Für den Upload einer Win32 App zu Intune müssen wir das erstelle Paket in eine Intunewin-Datei paken.
Das machst du so: Win32 App / .intunewin erstellen

Ist das Intunewin-File erstellt, kann es mit folgender Konfiguration veröffentlicht werden:

  • Apps > Windows + Add
App Informations
  • Installation- und Deinstallations-Befehl hinterlegen, System/User je nach Anforderung
Installation%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command .\install.ps1
Deinstallation%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command .\uninstall.ps1
installation command
  • Requirements je nach Applikation
  • Erkennungsregel, Custom: check.ps1 oder manuell
win32 detection rule
  • Abhängigkeit, falls nötig deklarieren
  • Zuweisen und fertig.