PowerShell-Scripts kompilieren mit Win-PS2EXE


    Tags: ,

    Compiler SymbolbildAnstatt tech­nisch nicht versierte Nutzer mit PowerShell-Scripts han­tieren zu lassen, ist es oft ein­facher, ihnen eine ausführ­bare Datei zur Ver­fügung zu stellen. Win-ps2exe ist ein gra­fisches Frontend für das Compile-Script ps2exe.ps1, mit dem man PowerShell-Code unkompliziert eine EXE ver­wandeln kann.

    Compiler für PowerShell-Scripts gab es schon in der Vergangenheit, beispiels­weise PS1 to Exe. Dieses Tool erhielt aber seit Jahren kein Update mehr und ist über die Website des Autors auch nicht mehr zu bekommen. Ähnliches gilt für ps2exe.ps1, das auf Ingo Karstein zurückgeht und nun von Markus Scholtes weiter­entwickelt wurde. Von ihm stammt auch die GUI dazu.

    GUI kompilieren

    Die Software steht im Quellcode auf Github zur Verfügung und lässt sich sehr einfach in eine ausführbare Datei übersetzen. Nach dem Entpacken des ZIP-Archivs führt man einfach die Batch-Datei compile.bat aus, anschließend findet sich Win-PS2EXE.exe im gleichen Verzeichnis. Das eigentliche Compiler-Script ps2exe.ps1 sollte dort ebenfalls vorhanden sein.

    Erstellen von Win-PS2EXE aus dem Quellcode mit Hilfe von compile.bat

    Falls in älteren Windows-Versionen maximal das .NET-Framework 3.5 installiert ist, dann sollte man compile.bat im Unterverzeichnis DotNet3.5 des entpackten Archivs ausführen. Die installierten .NET-Versionen kann man am einfachsten in einer cmd.exe mit diesem Befehl ermitteln:

    dir "C:\Windows\Microsoft.NET\Framework" /ad

    Optionen für Programmgenerierung

    Startet man anschließend Win-PS2EXE.exe, dann präsentiert dieses eine simple GUI mit einigen Eingabe­feldern. Die Pfade für die Quell- und Zieldatei muss man leider eingeben, ein Auswahldialog fehlt hier. Zusätzlich kann man hier eine Icon-Datei bestimmen. Die restlichen Felder sind selbst­erklärend.

    Eingabefelder und Optionen der GUI zur Kompilierung von PowerShell-Scripts

    Im unteren Bereich zeigt das Tool einige Optionen an, wobei nur Compile a graphic windows program vorausgewählt ist. Sie bewirkt, dass Ein- und Ausgaben über Fenster auf der GUI erfolgen. Dies ist nicht immer wünschenswert, etwa weil Get-Process dann jede Zeile in einem eigenen Dialog darstellt.

    Die Kompilierung als grafisches Windows-Programm eignet sich nicht für alle Scripts.

    Praktisch ist zudem die Möglichkeit, die Ausführung von kompilierten Scripts auf administrative Konten zu beschränken.

    Nutzung der kompilierten Scripts

    Der Autor berichtet auf Github, dass ps2exe offenbar zum Kompilieren von Malware missbraucht wurde, und seitdem entfernen einige Virenscanner die von seinem Tool erzeugten Programme.

    Die Weitergabe solcher Dateien kann zudem in einigen Firmen daran scheitern, dass ihre Ausführung durch Application Whitelisting blockiert wird. Das gilt besonders für den Start aus dem Benutzerprofil, der sich durch AppLocker oder Software Restriction Policies relativ einfach verhindern lässt.

    Umgekehrt umgehen kompilierte Scripts die PowerShell Execution Policy, die für weniger versierte Anwender zur Hürde werden können.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links