PowerShell Universal war historisch eine reine PowerShell-Plattform. Mit der Veröffentlichung von PowerShell Universal 4.2 fügen wir die Möglichkeit hinzu, Python-Skripte auszuführen. Dieser Beitrag zeigt, wie das mit einem 4.2-Nightly-Build funktioniert.
Diese Funktion wird im November als Teil von PowerShell Universal 4.2 ausgeliefert.
Minimal-Umgebungen
PowerShell Universal 4.2 führt eine neue Umgebungseinstellung namens Minimal ein. Minimal-Umgebungen versuchen nicht, Universal-Assemblys zu laden oder eine gRPC-Verbindung zwischen Kindprozess und Elternprozess herzustellen. So kann PowerShell Universal in Umgebungen laufen, die nicht auf .NET basieren. Minimal-Umgebungen nutzen STDOUT und STDERR, um die Ausgabe des in der Umgebung gestarteten Prozesses zu erfassen. Das hilft auch bei PowerShell-Skripten, die Module laden, die mit Universal-Assemblys kollidieren.
Python-Umgebung
Um eine Python-Umgebung einzurichten, erstellen Sie zuerst eine neue Umgebung und setzen den Pfad auf python.exe. Python muss auf dem Rechner installiert sein. Setzen Sie anschließend die Befehlszeile auf {scriptPath}. Dieser Wert wird zur Laufzeit auf den Pfad des ausgeführten Skripts erweitert und übergeben.
Python-Skripte ließen sich in früheren Versionen von PowerShell Universal bereits technisch ausführen. Dieser neue Umgebungstyp startet Python jedoch direkt, ohne einen zwischengeschalteten PowerShell-Prozess, der dann Python aufruft. Dadurch starten diese Jobs deutlich schneller.
Python-Skripte ausführen
Erstellen Sie anschließend ein Skript mit der Erweiterung .py. Wir haben die Admin-Konsole aktualisiert, damit Python-Skripte korrekt erkannt und mit Syntaxhervorhebung angezeigt werden. Klicken Sie schließlich auf Run und wählen Sie Ihre Python-Umgebung.
Wie geht es weiter mit Minimal-Umgebungen und der Python-Integration?
Minimal-Umgebungen lassen Sie jeden gewünschten Prozess über die Skriptausführungs-Engine starten und den Skriptpfad als Argument übergeben. Weil wir das Makro {scriptPath} ersetzen, können Sie weitere Argumente ergänzen. Das ist auch für andere Skriptsprachen nützlich, etwa bash unter Linux. Minimal-Umgebungen funktionieren nicht mit APIs, Apps oder Terminals. Diese Funktionen erfordern eine gRPC-Implementierung, die in diesen anderen Sprachen und Engines nicht verfügbar ist. Wir hoffen, unsere gRPC-Proto-Dateien im Zeitrahmen der v5-Version bereitzustellen. Damit ließen sich Clients in jeder Sprache erzeugen, in der gRPC und protobuf unterstützt werden.
Bereit zum Bauen? PowerShell Universal herunterladen.

Adam Driscoll