1. C:\ITnator
  2. PowerShell

Matrix42 Empirum PowerShell Script ausführen

Autor
Johannes Huber
Veröffentlicht
Aktualisiert
Lesezeit
2 Minuten
Comic: Admin am Fließband mit Softwarepaketen, zum Artikel: Matrix42 Empirum PowerShell Script ausführen

Manche Software-Pakete erfordern es ein PowerShell Script ausführen zu lassen. Hier werden oft Anpassungen vorgenommen, oder auch komplexe Operationen durchgeführt. Das ist natürlich für Matrix42 Empirum kein Problem. Man kann ohne große Probleme solch ein PowerShell Script ausführen lassen. Aber wie ist die Syntax hierfür? Und was muss ebenfalls beachtet werden? Wir klären euch auf mit dem Thema Empirum PowerShell Script ausführen.

Empirum PowerShell Script ausführen

Natürlich ist es kein Problem mit Matrix42 Empirum ein solches PowerShell Script ausführen zu lassen. Hierfür müssen wir die Befehle in der Setup.inf verbauen. Natürlich benötigt man hierfür ein fertiges Script, aber das sollte klar sein. Ich erkläre es hier an einem Beispiel zur Installation eines Programmes.

  1. Als erstes öffnen wir natürlich die Setup.inf Datei und legen hier am Besten eine neue Variable an.

    Code
    Install=powershell.exe -file "%SRC%\Install-Software.ps1"
    

    Der Aufruf des Script steht nun also in der Variable %Install%.

  2. Danach muss die Variable zur Installation natürlich aufgerufen werden.

    Code
    Call %Install%
    
    ; alternativ
    
    CallHidden %Install%
    

Das ist schon alles was zum Empirum PowerShell Script ausführen notwendig ist. Der Befehl CallHidden zeigt keine Ausgabe, also kein PowerShell Fenster bei der Installation des Softwarepaketes.

Parameter

Was wäre ein komplexes PowerShell Script ohne Parameter? Parameter sind natürlich auch kein Problem. Hier muss man einfach den Befehl in der Variable um die gewünschten Aufrufe, beziehungsweise Parameter erweitern:

Code
Install=powershell.exe -file "%SRC%\Install-Software.ps1" -SilentMode "YES"

So einfach lassen sich Parameter in der Setup.inf mitgeben.

ExecutionPolicy

Das Ausführen von PowerShell Script ist auf normalen Windows Betriebssystemen untersagt. Das verhindert die so genannte ExecutionPolicy. Wenn die Ausführung von Scripts auf dem System nicht als Standard genehmigt ist, muss dies im Befehl mitgegeben werden:

Code
Install=powershell.exe -executionpolicy bypass -file "%SRC%\Install-Software.ps1"

Somit wird für die Ausführung dieses Scripts eine Ausnahme gemacht und die Ausführung ist nicht mehr verhindert.

Empirum PowerShell Befehl ausführen

Empirum kann nicht nur Scripts ausführen, sondern auch einfache PowerShell Befehle absetzen. In meinem Beispiel wird ein Zertifikat mit PowerShell installiert. Hierfür benötigt man nicht extra ein Script. Hier lautet der Befehl folgendermaßen:

Code
InstallPFX=powershell.exe Import-PfxCertificate –FilePath '\\server\share\YOURCERT.pfx' -CertStoreLocation cert:\localMachine\my -Password (ConvertTo-SecureString -String 'YOUR-SECURE-STRING' -Force –AsPlainText)

Hier wird der Befehl zum Installieren des Zertifikats auch in eine Variable InstallPFX gespeichert. Allerdings wird kein Script angegeben, sondern wird mit dem Befehl Import-PfxCertificate gearbeitet. Alle anderen Befehle sind natürlich auch möglich. Das mit dem Zertifikat ist nur als Beispiel gedacht.

Da wir den Befehl wieder in eine Variable gespeichert haben, muss diese natürlich wieder aufgerufen werden:

Code
Call %InstallPFX%

; alternativ

CallHidden %InstallPFX%

Hier ist es wie oben. Call ruft die PowerShell Konsole sichtbar auf, CallHidden ruft diese versteckt auf.

Johannes Huber

Administrator bei ITnator

Schreibt über Probleme aus der Administration von Servern, Clients und vielen weiteren IT-Komponenten.

2 Kommentare

Bernhard

Wie kann man Powershell denn dazu bewegen seine Werte in die setup.inf zurückzugeben? Vor allem wenn ich mehr Werte/Variablen ich weitergeben möchte... Kenne hier nur die Möglichkeit über ErrorLevel... aber ...

Johannes

Hallo Bernhard, das ist so einfach nicht möglich, bzw. mir fällt keine Möglichkeit ein das zu realisieren. Natürlich kann man einen einfachen "Umweg" machen: Lass das Ergebnis deines PowerShell Befehls irgendwo hinschreiben, beispielsweise in ein Textfile - und dessen Inhalt dann im weiteren Verlauf in der Setup.inf einlesen. Ist zwar nicht der schönste Weg, aber funktioniert. :-) Gruß Johannes

Kommentar schreiben

Kommentare erscheinen nach unserer Prüfung. Gespeichert werden Name und Text, siehe Datenschutz.