Tags: PowerShell, Tools
Anstatt technisch nicht versierte Nutzer mit PowerShell-Scripts hantieren zu lassen, ist es oft einfacher, ihnen eine ausführbare Datei zur Verfügung zu stellen. Win-ps2exe ist ein grafisches Frontend für das Compile-Script ps2exe.ps1, mit dem man PowerShell-Code unkompliziert eine EXE verwandeln kann.
Compiler für PowerShell-Scripts gab es schon in der Vergangenheit, beispielsweise 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 weiterentwickelt 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.
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 Eingabefeldern. 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 selbsterklärend.
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.
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
Verwandte Beiträge
- ScriptRunner Portal Edition R4: Support für Microsoft Graph, überarbeitetes Portal, zentrale Execution-Policy
- WSUS Automated Maintenance im Test: Updates ablehnen und entfernen, Datenbank und IIS optimieren
- PowerShell-Scripts in VSCode bearbeiten und ausführen
- Visual Studio Code (VSCode) als Konsole für PowerShell nutzen
- ScriptRunner 2016 unterstützt jetzt PowerShell 5
Weitere Links