Powershell-Script als benutzerdefiniertes Paket einbinden und ändern
Vorbemerkung
Die grundsätzliche Vorgehensweise zur Einbindung von benutzerdefinierten Pakete (UDP = User Defined Packages) finden Sie hier: Benutzerdefinierte Pakete (UDP) erstellen und ändern .
Nachfolgend werden nur die spezifischen Einstellungen erläutert, die für die Verteilung von Powershell-Scripten zu beachten sind.
mypDeploy stellt für benutzerdefinierte Pakete nur den Transportmechanismus und einige Einstellungen zur Verteilung zur Verfügung.
Es liegt ausschließlich in der Verantwortung des Kunden, dass das Powershell-Script seine Aktionen korrekt, fehlerfrei und ohne Benutzerinteraktion ausführen kann!
Einbindung von Powershell.exe
Wählen Sie anschließend den Quellpfad für das Powershell-Script aus. Es handelt sich um den Ordner, in dem sich das auszuführende Script befindet. Wenn das Script seinerseits auf Dateien/Ordner zugreift, werden diese auch hier abgelegt.
In den vier Bereichen:
Installation Maschinenteil
Deinstallation Maschinenteil
geben Sie als Programm, das zur Installation ausgeführt werden soll, folgendes ein:
%WINDIR%\System32\WindowsPowershell\v1.0\powershell.exe>64
Als Parameter geben Sie bitte ein:
Minimal:
-file MyPowershellScript.ps1
Empfehlung:
-WindowStyle Hidden -NonInteractive -ExecutionPolicy Bypass -file MyPowershellScript.ps1
Dahinter können Sie ggf. weitere Parameter für Ihr Powershell-Script oder Aufrufparameter für die Powershell selbst eintragen. Die Vorgehnsweise wiederholen Sie für das Deinstallationskommando.
Standardvorgehensweise ist immer die direkte Ausführung des Scripts - über die Optionen können Sie aber bei Bedarf folgende Sondereinstellungen auswählen:
Kommando ohne Kommandozeilen-Interpreter ausführen: Standard ist aktiviert; bei der Ausführung von Powershell-Scripten macht es in aller Regel keinen Sinn, noch eine Instanz des Kommandozeilen-Interpreters dazwischen zu schalten.
Nicht auf das Ende des Kommandos warten: Standard ist deaktiviert; wenn Sie die Checkbox aktivieren, wird das übergebene Script gestartet und der mypDeployClient wartet nicht auf das Ergebnis, sondern macht sofort weiter.
Als Befehl des Kommandozeilen-Interpreters ausführen: Diese Funktion muss für Powershell-Scripte deaktiviert bleiben!
Konsolenfenster anzeigen: Diese Funktion muss für Powershell-Scripte deaktiviert bleiben!
Fehlercode ignorieren: Tragen Sie bei Bedarf hier alle Exitcodes des Scripts ein, die von mypDeploy als erfolgreich interpretiert werden sollen. Wenn Sie hier keine Änderung vornehmen, werden alle Exitcodes <> 0 als Fehler interpretiert.
x86/x64-Umleitung
Die mypDeploy-Clientkomponente ist ein 32-Bit-Programm und startet daher beim alleinigen Aufruf von powershell.exe auch eine 32-Bit-Powershellumgebung. Das kann in der Praxis zu Problemen führen, da viele Module auf einem x64-Betriebssystem nur in der x64-Umgebung geladen und ausgeführt werden dürfen.
Über den Appendix “>64” weisen Sie den mypDeploy-Client an, die Windows-eigene Umleitung auf die x86-Umgebung zu umgehen und die Powershell in der x64-Umgebung zu starten.
Wenn Ihr Powershell-Script grundsätzlich problemlos auch in einer x86-Umgebung gestartet werden kann, lassen Sie einfach “>64” weg oder geben als Programm nur “powershell.exe” ohne Pfad an und überlassen es dem Betriebssystem, eine Powershell-Umgebung bereit zu stellen.
Best Practice
Grundsätzlich reicht es aus, “-file Scriptname.ps1” als Parameter für den Aufruf einzutragen.
Wir empfehlen aber, immer zusätzlich die Parameter
-WindowStyle Hidden (verbirgt die Powershell-Konsole vor dem Anwender)
-NonInteractive (verhindert die Kommunikation der Powershell mit dem Anwender)
-ExecutionPolicy Bypass (sorgt dafür, dass das Script unabhängig lokal gesetzter Einschränkungen immer ausgeführt werden kann)
anzugeben.
Direkter Aufruf von PS1-Scripten
Sie können analog zu cmd-Dateien auch Powershell-Scripte direkt als Skript-Datei aufrufen.
Tragen Sie hierzu einfach den Namen der Script-Datei als Programm ein; die erforderlichen Aufrufparameter erzeugt mypDeploy dann selbstständig.
Falls ihr Powershell-Script Parameter benötigt tragen Sie diese in gewohnter Powershell-Notation “-Parameter Value” in das Parameter-Feld von mypDeploy ein.