Sie haben ein Skript geschrieben, das ein Problem in zehn Sekunden behebt – aber die Leute, die es brauchen, öffnen PowerShell nicht, ändern keine Ausführungsrichtlinie und führen keine Textdatei aus. Konvertieren Sie es in eine EXE-Datei, auf die sie doppelklicken können. Hier ist die vollständige Konvertierung, richtig durchgeführt, mit klarer Darstellung ihrer Grenzen.
Jeder Windows-Administrator hat einen Ordner mit brillanten kleinen Skripten, die niemand sonst verwenden kann. Das Skript ist in Ordnung; Die Verpackung ist das Problem. Eine .ps1-Datei wird beim Doppelklicken im Editor geöffnet, löst bei der Ausführung Richtlinienwarnungen aus und sieht für einen technisch nicht versierten Benutzer wie ein Virus aus. Durch die Konvertierung in eine EXE-Datei mit dem kostenlosen PS2EXE-Modul wird das Problem in etwa einer Minute behoben. Auf dieser Seite ist die gesamte Aufgabe in der Reihenfolge aufgeführt: Was die Konvertierung wirklich bewirkt, die Installation, der Befehl, die Optionen, die wichtig sind, und die Tests, die Sie ehrlich halten.
Ein PowerShell-Skript ist eine Textdatei. Es benötigt PowerShell zum Öffnen, die richtige Ausführungsrichtlinie zum Ausführen und einen Benutzer, der keine Angst vor einem blauen Fenster voller Text hat. Eine konvertierte EXE-Datei beseitigt alle drei Reibungspunkte: Der Benutzer doppelklickt auf eine Datei, genau wie bei jedem anderen Programm.
Machen Sie sich klar, was das Tool unter der Haube tut. PS2EXE, das kostenlose Modul, das in diesem Handbuch verwendet wird, verpackt Ihr Skript in ein kleines .NET-Programm. Der Skripttext wird in codierter Form innerhalb der EXE-Datei übertragen, und wenn die EXE-Datei ausgeführt wird, übergibt sie das Skript an die in Windows integrierte PowerShell-Engine. Nichts wird in Maschinencode kompiliert und das Skript wird nicht in ein Geheimnis umgewandelt – eine spätere Seite in diesem Satz deckt diese Einschränkung vollständig ab.
Dieser Wrapper ist immer noch wirklich nützlich. Es ist der Unterschied zwischen dem Senden einer Textdatei mit sechs Anweisungen an einen Kollegen und dem Senden einer Schaltfläche, die einfach funktioniert.
Konvertieren Sie niemals ein ungetestetes Skript. Die EXE-Datei verbirgt die Konsole und den Fehlerstrom auf eine Weise, die das Debuggen verlangsamt, sodass jeder Fehler gefunden werden muss, während das Skript noch ein einfaches .ps1 ist.
PS2EXE wird von seinem Autor Markus Scholtes in der PowerShell-Galerie veröffentlicht und ist kostenlos. Sie installieren es einmalig auf Ihrem eigenen PC; Die Leute, die die EXE-Datei erhalten, installieren nichts.
Install-Module -Name ps2exe aus.Set-ExecutionPolicy -Scope CurrentUser RemoteSigned zu und beachten Sie, dass Sie nur eine Sicherheitseinstellung für Ihr eigenes Konto ändernEs gibt auch ein grafisches Frontend, Win-PS2EXE, das alle Optionen als Kontrollkästchen und Felder anzeigt. Es erzeugt genau die gleiche EXE-Datei wie die Befehlszeile – verwenden Sie diejenige, die Ihnen klarer erscheint.
Der Basisbefehl benennt ein Eingabeskript und eine Ausgabedatei:
Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe"ps2exe akzeptiert dieselben Parameter-noConsole hinzu, wenn das Skript ein Fenster oder Formular anzeigt und Sie kein schwarzes Konsolenfenster dahinter haben möchten-requireAdmin hinzu, wenn das Skript die Systemeinstellungen ändert, damit Windows beim Start nach einer Erhöhung fragt, anstatt dass das Skript auf halbem Weg fehlschlägt-iconFile ".\tool.ico" plus -title, -product, -company und -version hinzu, wenn die Datei freigegeben werden soll – diese füllen die Registerkarte „Details“ der Dateieigenschaften ausDas auf dieser Seite verlinkte Video führt Sie am Bildschirm durch die Konvertierung; Bei den oben genannten Optionen handelt es sich um die gleichen, die auch verwendet werden, und im Rest dieses Leitfadensatzes werden sie ausführlich erläutert.
Eine konvertierte EXE-Datei ist für Windows ein neues Programm. Testen Sie es so, wie sein echter Benutzer es treffen wird:
.ps1 bei. Die EXE-Datei ist nur eine Build-Ausgabe; Jede zukünftige Bearbeitung beginnt mit dem SkriptSehen Sie sich die vollständige Konvertierung im Video an – die Modulinstallation, die GUI und die Befehlsrouten sowie die Ausführung der fertigen EXE-Datei.
Watch Full VideoEs benötigt die PowerShell-Engine, die in Windows selbst enthalten ist und die Windows 10 und 11 standardmäßig enthält. Der Benutzer installiert nichts und öffnet nie PowerShell – die EXE-Datei startet die Engine im Hintergrund und übergibt ihr Ihr Skript.
Nicht im C- oder Cis-Sinn. PS2EXE verpackt Ihren Skripttext verschlüsselt in ein kleines .NET-Hostprogramm. Wenn die EXE-Datei ausgeführt wird, leitet der Host Ihr Skript an die Windows PowerShell-Engine weiter. Das Verhalten ist identisch mit dem Ausführen von .ps1 – die Verpackung ändert sich.
PS2EXE ist kostenlos. Es handelt sich um ein Community-Modul, das von Markus Scholtes in der PowerShell-Galerie veröffentlicht und mit Install-Module -Name ps2exe installiert wurde. Es gibt kommerzielle Packager, aber für die Standardkonvertierungsaufgabe wird im Video und in dieser Anleitung das kostenlose Modul verwendet.