Hintergrundinfo Installationsmodi

Wie im Abschnitt Ausführung von Paketen beschrieben, führen Sie ein Paket aus, indem Sie das Executable "Deploy-Application.exe", das sich im Paketverzeichnis befindet, aufrufen.

Sie können festlegen, welcher Installations-Modus verwendet wird, indem Sie über den Kommandozeilen-Parameter "InstallMode" festlegen, wie die Installation ausgeführt werden soll. Wenn Sie den Parameter "InstallMode" nicht angeben, wird als Default-Wert "Install" angenommen. Die Angabe erfolgt im Format "Deploy-Application.exe -InstallMode <Modus>".

Mögliche Werte für InstallMode sind:

  • Install
    Es wird entweder nur der Computerteil (bei nicht-interaktiver Ausführung) oder sowohl Computer- als auch Benutzerteil (bei interaktiver Ausführung) installiert.
  • InstallComputerPart
    Es wird nur der Computerteil installiert.
  • InstallUserPart
    Es wird nur der Benutzerteil installiert (typischerweise über Active Setup).
  • Modify
    Es findet eine Modifikations-Ausführung statt. Im aktuellen Status entspricht das einer normalen Installation.
  • Reinstall
    Es findet eine Reinstallation statt, das Script wird erneut ausgeführt.
  • Repair
    Es findet eine Reparatur-Installation statt. Im aktuellen Status entspricht das einer normalen Installation.
  • Uninstall
    Es wird entweder nur der Computerteil (bei nicht-interaktiver Ausführung) oder sowohl Computer- als auch Benutzerteil (bei interaktiver Ausführung) deinstalliert.
  • Update
    Es findet eine Update-Installation statt. Im aktuellen Status entspricht das einer normalen Installation.


Beginnend mit Version 2.0 kann ein weiterer Kommandozeilenparameter an "Deploy-Application.exe" übergeben werden, der dafür sorgt, dass vom Paketverzeichnis automatisch eine Kopie erzeugt wird. Dieser Parameter wurde eingeführt, da die Microsoft Intune Management Extension nach erfolgreicher Ausführung eines Pakets, den Paket-Cache selbstständig löscht und daher für Pakete mit Benutzerteil dieser nicht ausgeführt werden könnte. 

  • PersistCache
    Das Paket kopiert sich selbst in das Verzeichnis "%ProgramData%\CANCOM\PackageDeployment\PackageCache". Die Active Setup Registry-Werte verweisen dann auf dieses Verzeichnis statt auf das native Paket-Verzeichnis.


In Version 3.0 wurden zwei weitere Kommandozeilenparameter, die an "Deploy-Application.exe" übergeben werden können, eingeführt. Diese sorgen dafür, dass eine Installation, die im Dienst-Kontext ausgeführt wird, in eine interaktive Windows-Sitzung "umgeleitet" wird, indem sie dort neu gestartet wird.

  • RestartInteractive
    Switch-Parameter, der - wenn gesetzt - dafür sorgt, dass der Wert des Parameters "RunInInteractiveSession" zur Ermittlung der aktiven Windows-Sitzung verwendet wird.

Hinweis: beginnend mit Version 5.0 der Packaging PowerBench erfolgt die Interaktion mit dem Benutzer über den im zugrundeliegenden PowerShell App Deploy Toolkit v4 implementierten Client-/Server-Mechanismus. Das bedeutet aber auch, dass nicht das gesamte Paket in der aktiven Windows-Sitzung läuft, sondern eben nur die entsprechenden Dialoge der Befehle wie Show-ADTInstallationWelcome etc. für Benutzer zu sehen sind.

Wenn Sie wirklich erzwingen möchten, dass ein beliebiges Setup angezeigt wird und mit dem Benutzer mit dessen UI interagieren kann, dann können Sie über die Paketeigenschaften (Package.xml) das auch bei PPB 5.x / PSADT 4.x erzwingen. Dazu fügen Sie eine neue Eigenschaft ForceRestartInteractive in die Package.xml des entsprechenden Pakets ein und setzen diese auf True. Das Paket verhält sich dann wie unter PPB 4.x / PSADT 3.x und das gesamte Script wird in der interaktiven Windows-Sitzung ausgeführt:

<Property Name="ForceRestartInteractive" Type="System.Boolean">True</Property>


  • RunInInteractiveSession
    Alias: RunInSession 
    Vorgabewert: $null
    Mögliche Werte: 
    • $null
    • <leere Zeichenfolge>
    • -1 = ermittle die erste aktive Windows-Sitzung
    • <Zahl> = verwende diese Windows-Sitzung
    • <Prozess-Name> = ermittle die erste aktive Windows-Sitzung dieses Prozesses, wobei "*" zu "explorer" wird, und ein angehängtes "?" alternativ auch nach Explorer-Prozessen sucht.
    • <Zahl>:<Prozess-Name> oder <Prozess-Name>:<Zahl> = ermittle den angegebenen Prozess in der angegebenen Windows-Sitzung.


Anwendungsbeispiele:

  • Deploy-Application.exe                                                                                Die Installation wird in der aktuellen Windows-Sitzung ausgeführt.
  • Deploy-Application.exe -RestartInteractive                                                        Die Installation wird in der ersten aktiven Windows-Sitzung neu gestartet (der Vorgabewert von "RunInInteractiveSession" ist wirksam). Dies ist die übliche Aufrufform.
  • Deploy-Application.exe -RunInInteractiveSession $null                                        Die Installation wird in der ersten aktiven Windows-Sitzung neu gestartet ("RestartInteractive" ist nicht erforderlich).
  • Deploy-Application.exe -RestartInteractive -RunInInteractiveSession notepad?        Die Installation wird in der ersten aktiven Windows-Sitzung eines Notepad- oder Explorer-Prozesses neu gestartet ("RestartInteractive" ist eigentlich überflüssig, stört aber nicht).
  • Deploy-Application.exe -RunInInteractiveSession                                                Es tritt ein Fehler auf, da für "RunInInteractiveSession" ein Wert angegeben werden muss ("RestartInteractive" ist der Switch-Parameter ohne Wert).