Intune-Kurs · Teil 37 von 45 · Block F: App-Management
Was Sie in dieser Sektion lernen
- Grundkonzepte: Was macht PSADT eigentlich?
- Praxis-Implementierung: Dein erstes PSADT-Paket
- Best Practices für Enterprise-Deployments
- Troubleshooting: Wenn die Installation scheitert
ca. 5 Min. Lesezeit · Alle Sektionen im Überblick
Einleitung
Wer schon einmal versucht hat, eine komplexe Software-Suite über Microsoft Intune zu verteilen, weiß: Die native .intunewin-Paketierung ist ein notwendiges Übel, aber sie ist starr. Ein einfacher Installationsbefehl wie setup.exe /silent reicht in der Enterprise-Welt oft nicht aus. Was passiert, wenn der Benutzer die App gerade geöffnet hat? Was, wenn ein spezifischer Registry-Key vorab gesetzt werden muss? Oder wenn die Installation nur erfolgreich ist, wenn ein bestimmter Dienst gestoppt wurde?
Hier kommt das PSAppDeployToolkit (PSADT) ins Spiel. PSADT ist kein Tool von Microsoft, sondern ein Community-getriebenes Framework, das auf PowerShell basiert und faktisch zum Industriestandard für die professionelle Softwareverteilung geworden ist. Es verwandelt eine simple Installation in einen kontrollierten Prozess. In dieser Masterclass lernst du, warum PSADT das fehlende Puzzleteil in deiner Intune-Strategie ist und wie du es implementierst, um die Fehlerquote bei App-Deployments gegen Null zu senken.
Grundkonzepte: Was macht PSADT eigentlich?
Im Kern ist PSADT ein Wrapper. Anstatt dass Intune direkt die setup.exe aufruft, startet Intune das Toolkit (Deploy-Application.ps1), und dieses steuert dann die eigentliche Installation. Der größte Vorteil ist die Standardisierung. Jedes Paket folgt der gleichen Struktur, nutzt die gleichen Logging-Mechanismen und bietet die gleichen Interaktionsmöglichkeiten für den Endbenutzer.
Die Architektur des Toolkits
Ein PSADT-Paket besteht aus einer fest definierten Ordnerstruktur:
- AppDeployToolkit: Enthält die Logik, die PowerShell-Module und die GUI-Elemente. Diese Ordner werden nicht verändert.
- Files: Hier liegen die eigentlichen Installationsdateien (MSI, EXE, Config-Dateien).
- Deploy-Application.ps1: Das „Gehirn“ des Pakets. Hier definierst du, was vor, während und nach der Installation passieren soll.
- AppDeployToolkitConfig.xml: Globale Einstellungen für das Toolkit (z. B. Logging-Pfade).
Der Lifecycle einer Installation
PSADT unterteilt den Prozess in fünf klar definierte Phasen, die in der Deploy-Application.ps1 angesprochen werden:
- Pre-Installation: Prüfung von Voraussetzungen, Schließen von Anwendungen, Deinstallation alter Versionen.
- Installation: Ausführen des eigentlichen Installationsbefehls.
- Post-Installation: Konfiguration der Software, Import von Einstellungen, Bereinigung.
- User Interaction: Dialoge mit dem Benutzer (z. B. „Bitte speichern Sie Ihre Arbeit, da der PC neu gestartet werden muss“).
- Logging: Lückenlose Dokumentation jedes Schritts in einem zentralen Logfile.
Praxis-Implementierung: Dein erstes PSADT-Paket
Lass uns ein reales Beispiel nehmen: Wir verteilen den Google Chrome Browser, müssen aber sicherstellen, dass alle offenen Browser-Fenster geschlossen werden und ein spezieller Unternehmens-Policy-Key in der Registry gesetzt wird.
Schritt 1: Vorbereitung
Lade das aktuelle PSAppDeployToolkit herunter und erstelle einen neuen Ordner für dein Paket. Kopiere die ChromeStandaloneEnterprise64.msi in den Ordner Files.
Schritt 2: Die Deploy-Application.ps1 konfigurieren
Öffne die Deploy-Application.ps1. Du musst dich auf die Sektion INSTALLATION konzentrieren. Hier ist ein praxisnahes Beispiel, wie der Code aussieht:
Schritt 3: Das Paket für Intune vorbereiten
Da Intune keine Ordnerstrukturen nativ „versteht“, müssen wir das gesamte PSADT-Verzeichnis in eine .intunewin Datei packen. Nutze dazu das Microsoft Win32 Content Prep Tool.
- Source Folder: Dein PSADT-Projektordner.
- Setup File:
Deploy-Application.exe(Das Toolkit liefert einen Wrapper mit, damit du nicht manuell PowerShell-Execution-Policies umgehen musst). - Output Folder: Dein Zielordner für die .intunewin Datei.
Schritt 4: Intune-Konfiguration
Beim Hochladen in Intune nutzt du folgende Befehle:
- Install Command:
Deploy-Application.exe - Uninstall Command:
Deploy-Application.exe -Uninstall - Install Behavior: System
Best Practices für Enterprise-Deployments
Um PSADT wirklich professionell einzusetzen, solltest du dich an folgende Gold-Regeln halten:
1. Nutze die eingebauten Funktionen statt roher PowerShell
Vermeide es, in der Deploy-Application.ps1 Standard-PowerShell-Befehle wie Start-Process oder Remove-Item zu verwenden. Nutze stattdessen die PSADT-Funktionen:
Execute-MSIstattmsiexec /i ...(bietet besseres Logging und Fehlerbehandlung).Execute-ProcessstattStart-Process(wartet auf den Exit-Code und loggt diesen).Set-RegistryKeystattSet-ItemProperty.
2. Benutzerinteraktion mit Bedacht einsetzen
In einer modernen Cloud-Umgebung stören Pop-ups die Produktivität. Nutze Show-InstallationWelcome nur, wenn es absolut notwendig ist (z. B. bei Neustarts). Setze den Parameter -CloseAppsCountdown, um dem Nutzer Zeit zu geben, seine Arbeit zu speichern.
3. Versionierung und Standardisierung
Erstelle dir eine eigene Master-Vorlage für deine Pakete. Jedes Paket sollte:
- Die gleiche Version des Toolkits verwenden.
- Ein konsistentes Benennungsschema für die Logfiles haben.
- Immer einen
-UninstallPfad definieren, der das System sauber hinterlässt.
Troubleshooting: Wenn die Installation scheitert
Einer der größten Vorteile von PSADT ist das Logging. Du musst nicht mehr raten, warum eine App mit Fehler 0x80070005 abgebrochen ist.
Wo finde ich die Logs?
Standardmäßig schreibt PSADT alle Logs nach: C:\Windows\Logs\Software. Dort findest du für jedes Paket eine eigene Logdatei. Suche im Log nach folgenden Keywords:
- [EXIT CODE]: Zeigt an, mit welchem Code die MSI oder EXE beendet wurde.
- [ERROR]: Markiert kritische Fehler im Toolkit-Ablauf.
- [WARNING]: Zeigt an, dass eine App nicht geschlossen werden konnte oder ein optionaler Schritt übersprungen wurde.
Häufige Fehlerquellen
- Execution Policy: Wenn du die
Deploy-Application.ps1direkt startest, blockiert Windows oft das Skript. Nutze immer dieDeploy-Application.exe, da diese die Execution Policy für den Prozess-Aufruf temporär aufBypasssetzt. - 64-Bit vs. 32-Bit: Intune startet Win32-Apps standardmäßig im 32-Bit Kontext (SysWOW64). Wenn du Registry-Keys in
HKEY_LOCAL_MACHINE\SOFTWAREschreiben willst, landen diese inSOFTWARE\WOW6432Node. Nutze im Toolkit die entsprechende Logik, um den Registry-Hive korrekt anzusprechen.
Fazit
Das PSAppDeployToolkit ist weit mehr als nur ein Installations-Skript; es ist ein Framework für Vorhersagbarkeit. Durch die Trennung von Installationslogik (Toolkit) und App-Daten (Files) sowie die tiefgreifende Integration von Logging und Benutzerkommunikation hebst du dein Paketmanagement auf ein neues Level.
In einer Umgebung, in der Intune die zentrale Steuerung übernimmt, ist PSADT die Versicherung, dass deine Software nicht nur „irgendwie“ installiert wird, sondern präzise, sauber und dokumentiert. Wenn du die hier beschriebenen Muster – insbesondere die Nutzung der integrierten Funktionen und das konsequente Logging – anwendest, reduzierst du deine Support-Tickets nach einem Software-Rollout massiv.
Zusammenfassung für die Praxis:
- Struktur:
Filesfür Daten,Deploy-Application.ps1für Logik. - Phasen: Pre-Install (Apps schließen) → Install (Execute-MSI) → Post-Install (Config).
- Intune: Verpacken als
.intunewin, Start viaDeploy-Application.exe. - Log-Check:
C:\Windows\Logs\Softwareist dein bester Freund.