Sie können PowerShell-Skripte auf viele verschiedene Arten aufrufen, aber sie alle haben einen Nachteil: Sie können sie nicht einfach wie ein Standard-Windows-Programm (EXE) ausführen. Vielleicht möchten Sie verhindern, dass der Code in einem Skript bearbeitet wird, oder es Ihren Benutzern erleichtern, Skripte auszuführen. Es ist Zeit zu lernen, wie man eine PS1 in eine EXE konvertiert.
In diesem Tutorial erfahren Sie, wie Sie PS1-zu-EXE-Generatoren verwenden können, und Sie können sie auch vergleichen, um zu entscheiden, welcher Ihren Vorlieben am besten entspricht.
Anforderungen
In diesem Tutorial werden verschiedene Tools mit schrittweisen Anleitungen zum Konvertieren von PS1 in EXE demonstriert. Stellen Sie sicher, dass Sie alle unten aufgeführten Anforderungen erfüllen.
- A Windows computer with an administrator privileges
- Ab Windows 7, 8.1 und 10 ist PowerShell bereits bei der Installation des Betriebssystems enthalten. Obwohl einige Skripte mit PowerShell 3.0 ausgeführt werden können, ist es viel besser, PowerShell 5.1 oder PowerShell 7
- Ihre PowerShell-Ausführungsrichtlinie auf „Skriptausführung zulassen“ gesetzt ist
PS2EXE
Das PS2EXE-Dienstprogramm ist das erste Tool auf unserer Liste. PS2EXE ist ein kostenloses, Open-Source-PowerShell-Modul, das laut dem Autor Ingo Karstein „das PowerShell-Skript nicht in eine andere Sprache umwandelt. Es kapselt das Skript mit einem schlanken PowerShell-Host, der in C# geschrieben ist, ein und kompiliert den dynamisch generierten C#-Quellcode im Speicher zu einer EXE-Datei.“
Besuchen Sie Ingo Karsteins Blog, um mehr darüber zu erfahren, wie PS2EXE entstanden ist. Die Entwicklung des Moduls wurde um 2017 herum eingestellt, aber Markus Scholtes übernahm die Weiterentwicklung von PS2EXE und erstellte auch eine GUI-Version.
Installation des PS2EXE-Moduls
PS2EXE begann als PowerShell-Skript, und als Markus Scholtes die Entwicklung übernahm, wurde ein Modul verfügbar gemacht. Da PS2EXE das Modul verwendet, um Ihr Skript in eine ausführbare Datei umzuwandeln, müssen Sie es aus der PowerShell-Galerie installieren.
Befolgen Sie die folgenden Anweisungen, um das PS2EXE-Modul zu installieren.
- Öffnen Sie eine PowerShell-Konsole als Administrator.
2. Führen Sie den Befehl Install-Module
aus, um das Modul aus der PowerShell-Galerie herunterzuladen und zu installieren.
3. Geben Sie Y ein und drücken Sie die Eingabetaste, sobald Sie zur Aufforderung bezüglich eines nicht vertrauenswürdigen Repositories aufgefordert werden. Keine Sorge. Diese Meldung ist harmlos.
PS1 in EXE über die Befehlszeile konvertieren
PS2EXE bietet zwei Möglichkeiten, PowerShell-Skripte in EXE-Dateien umzuwandeln; über die Befehlszeile und eine grafische Benutzeroberfläche. Lassen Sie uns zunächst die Verwendung der Befehlszeile behandeln.
Um ein einzelnes PowerShell-Skript über die Befehlszeile in eine EXE-Datei umzuwandeln, benötigen Sie eine einzige Zeile, die den Hauptbefehl von PS2EXE (Invoke-PS2EXE
) gefolgt vom Pfad des Skripts, das konvertiert werden soll, und dem Pfad zur zu erstellenden EXE enthält.
Sie können nun target.exe ausführen, und es wird der im Skript source.ps1 definierte Code aufgerufen. Wenn Sie den Parameter NoConsole
nicht verwendet haben, während Sie Ihr Skript konvertiert haben, erscheint eine PowerShell-Konsole, wenn Sie die Datei target.exe ausführen.
Das Ausblenden der Konsole
In dem vorherigen Beispiel wird beim Ausführen von target.exe eine typische PowerShell-Konsole angezeigt. Meistens möchten Sie das nicht sehen. Um dies zu verhindern, können Sie den Parameter NoConsole
beim Erstellen der EXE verwenden, wie unten gezeigt.

Sie können auch wählen, die EXE nur für die x86- oder x64-Laufzeit zu kompilieren und andere. Eine Liste der verfügbaren Parameter finden Sie auf der GitHub-Veröffentlichungsseite.
Converting PS1 to EXE mit dem PS2EXE-GUI-Tool
Wenn Sie kein Fan der Befehlszeile sind, können Sie auch eine grafische Benutzeroberfläche mit dem PS2EXE-Modul verwenden. Die GUI-Version, die etwas später entwickelt wurde, bietet nahezu alle Funktionen der Befehlszeilenversion.
Es dauert nur wenige Klicks, um mit der GUI-Version von PS2EXE PS1 in EXE umzuwandeln. Im Gegensatz zur Befehlszeile können Sie in der GUI-Version die Quelldatei (PS1) bequem über einen Datei-Explorer-Auswahldialog durchsuchen und auswählen.
Um die GUI-Version auszuführen, benötigen Sie .NET 4.x auf Ihrem Computer. Wenn Sie nur .NET 3.5x haben, können Sie die PS2EXE-GUI für die .NET 3.5x-Version separat herunterladen.
Angenommen, Sie haben bereits das PS2EXE PowerShell-Modul von oben installiert, öffnen Sie den Datei-Explorer und navigieren Sie zu einem der unten stehenden PS2EXE-Modulordner und öffnen Sie den Ordner, der die Modulversion repräsentiert.
Windows 32-Bit: C:\Program Files (x86)\WindowsPowerShell\Modules\ps2exe\<version>
Windows 64-Bit: C:\Program Files\WindowsPowerShell\Modules\ps2exe\<version>
In diesen Ordnern finden Sie eine Datei namens Win-PS2EXE.exe.
- Öffnen Sie das Dienstprogramm C:\Program Files\WindowsPowerShell\Modules\ps2exe\<version>\Win-PS2EXE.exe.
2. Klicken Sie auf die Auslassungspunkte direkt rechts neben dem Quelldatei-Feld, um das PS1-Skript zu suchen.
3. Definieren Sie den Wert für die Zieldatei und stellen Sie sicher, dass die Dateierweiterung .exe enthalten ist.
4. Wählen Sie unten beliebige Anpassungen für die Konvertierung aus. Dies ist einfach eine grafische Darstellung der Parameter, die Sie für Ihr Skript verwenden können, genau wie die Befehlszeilenversion.
5. Klicken Sie auf Kompilieren, um den Konvertierungsprozess zu starten.

6. Wenn Sie auf die Schaltfläche Kompilieren klicken, öffnet PS2EXE eine PowerShell-Sitzung und führt die Konvertierung durch. Sobald dies erledigt ist, drücken Sie Enter oder schließen Sie das Konsolenfenster.

FYI: Einige ausführbare Dateien, die mit PS2EXE kompiliert wurden, können von Ihrer Antivirensoftware als Virus erkannt werden. Wenn dies passiert, stellen Sie sicher, dass Sie diese Fehlmeldungen an Ihren Antivirenhersteller melden.
PS1 zu EXE
PS1 zu EXE ist eine weitere kostenlose Desktop-Anwendung, die von F2KO Software entwickelt wurde und es ermöglicht, eine PS1-Datei in eine EXE-Datei umzuwandeln. Das Ps1 zu Exe ist im Gegensatz zu PS2EXE ein GUI-Tool mit einem einfachen Skripteditor.
Genau wie PS2EXE hat auch Ps1 to Exe sowohl die GUI- als auch die Befehlszeilenversion. Allerdings müssen Sie bei Ps1 to Exe anstatt der PowerShell-Konsole die Befehle innerhalb des Eingabeaufforderungsfensters ausführen.
Leider gibt es, obwohl die Website von F2KO noch online ist, keine Möglichkeit, PS1 zu EXE von dort herunterzuladen. Glücklicherweise kursiert ein herunterladbarer Installer dieses Tools im Internet.
Lassen Sie uns durchgehen, wie Sie PS1 zu EXE ausführen und verwenden, um eine EXE aus einem PowerShell-Skript zu erstellen.
PS1 in EXE mit GUI konvertieren
Nach der Installation und dem Start von Ps1 to Exe werden Sie feststellen, dass PS1 to EXE einen einfachen Skripteditor hat. Innerhalb dieses Skripteditors können Sie Skripte erstellen und speichern und auf eine Schaltfläche klicken, um sie zu konvertieren.
Ps1 to Exe unterstützt das Dot-Sourcing; beachten Sie, wie eine andere PS1-Datei mit dem unten stehenden Befehl aufgerufen wurde.
Um ein Skript mit PS1 to EXE in eine EXE zu konvertieren:
- Öffnen Sie das PS1 to EXE-Tool auf Ihrem Desktop.
2. Klicken Sie auf Datei —> Öffnen, finden Sie das Skript, das Sie konvertieren möchten, und öffnen Sie es.
Sobald Sie das Skript geöffnet haben, konfigurieren Sie, wie die kompilierte EXE ausgeführt werden soll. Auf der rechten Seite des Bildschirms sehen Sie eine Leiste mit drei Registerkarten zum Erkunden. Jede Registerkarte hat eine unterschiedliche Konfigurationsoption, die Sie wählen.

3. Um abhängige Skripte hinzuzufügen, klicken Sie auf die Registerkarte Einbetten und dann auf Hinzufügen.
4. Wenn Sie mit den Konversionsoptionen zufrieden sind, klicken Sie auf die Schaltfläche Konvertieren in der oberen Symbolleiste, um das Skript in eine EXE zu konvertieren.

PS1 to EXE über die Befehlszeile konvertieren
Wenn Sie lieber die Befehlszeile verwenden möchten, wird PS1 to EXE CLI als ps1_to_exe.exe bezeichnet, aber die Verwendung ist etwas knifflig.
Mit PS1 to EXE geöffnet:
- Öffnen Sie eine Eingabeaufforderung als Administrator
2. Ändern Sie das Arbeitsverzeichnis in den Installationsordner von PS1 to EXE.
3. Führen Sie jetzt ps1_to_exe aus, um die PS1 in eine ausführbare Datei zu konvertieren.
Der Befehl unten enthält auch ein abhängiges Skript in der kompilierten EXE-Datei und setzt das Zielplattform der ausführbaren Dateien auf ein 64-Bit-Windows-Betriebssystem.
Hier ist eine Demonstration des tatsächlichen Konvertierungsprozesses und der Ausgabedetails.

IExpress 2.0
Wenn Sie lieber kein weiteres Tool herunterladen möchten, haben Sie Glück, denn Sie haben das altmodische Dienstprogramm IExpress zur Verfügung. IExpress ist eine integrierte Windows-Anwendung, die normalerweise zum Verpacken von Dateien oder zum Erstellen von Software-Installationsprogrammen verwendet wird.
Es stellt sich heraus, dass IExpress auch PS1 in EXEs konvertieren kann, während Abhängigkeitsdateien alle zusammen in einer einzigen ausführbaren Datei kompiliert werden!
Um ein einfaches PowerShell-Skript in eine EXE umzuwandeln:
- Sie müssen IExpress als Administrator öffnen. Drücken Sie die Windows*-Taste+R*, um das Ausführen-Dialogfeld zu öffnen, geben Sie iexpress ein und drücken Sie dann die Strg+Umschalt+Enter-Taste.

2. Wählen Sie auf der Willkommensseite von IExpress Neue Self-Extraction-Direktive-Datei erstellen und klicken Sie auf Weiter, um Ihr Paket zu konfigurieren. Die Self-Extraction-Direktive (SED)-Datei steuert die Optionen, die beim Erstellen eines Installationspakets verwendet werden; denken Sie an sie als Konfigurationsdatei.

3. Wählen Sie die Option Dateien extrahieren und Installationsbefehl ausführen und klicken Sie auf Weiter. Wenn Sie einen Software-Installer erstellen, extrahiert diese Option Dateien, die Sie im Paket einschließen. Diese Option ermöglicht es Ihnen auch, einen benutzerdefinierten Befehl zum Ausführen des Skripts zu schreiben, wenn Sie die ausführbare Datei starten.

4. Geben Sie jetzt einen Paket-Titel ein und klicken Sie auf Weiter. Der Paket-Titel wird in allen Dialogfeldern angezeigt, die der Benutzer während der Installation sieht.
Der Paket-Titel gilt nur, wenn Sie einen Software-Installer erstellen. In diesem Fall spielt der Titel keine Rolle.

6. Wählen Sie anschließend Keine Aufforderung. Die Auswahl von Keine Aufforderung fordert den Benutzer nicht mit einem unnötigen Dialogfeld auf, wenn er die EXE-Datei ausführt.

6. Wenn Sie das Paket für ein Projekt erstellen, das eine Endbenutzer-Lizenzvereinbarung (EULA) erfordert, können Sie sich dafür entscheiden, eine Lizenz hinzuzufügen, die beim Ausführen der EXE angezeigt wird. Wählen Sie für diese Demonstration jedoch die Option Lizenz nicht anzeigen und klicken Sie auf Weiter.

7. Klicken Sie nun auf Hinzufügen und durchsuchen Sie alle Skripte, die in diese EXE aufgenommen werden sollen. Vergessen Sie nicht, das Hauptskript, das Sie aufrufen möchten, sowie alle abhängigen Skripte und andere Dateien, auf die die Skripte verweisen, einzuschließen.

8. Geben Sie im Fenster Installationsprogramm starten den Pfad zur powershell.exe Engine mit dem File
-Parameter an. Stellen Sie außerdem sicher, dass Sie den ExecutionPolicy
-Parameter auf Bypass
setzen, um sicherzustellen, dass vorkonfigurierte Ausführungsrichtlinien die Ausführung des Skripts nicht verhindern.

9. Als nächstes können Sie festlegen, wie sich die EXE-Windows beim Ausführen verhalten sollen. Wenn die EXE im Hintergrund ausgeführt werden soll, wählen Sie Hidden und klicken Sie auf Next. Hidden ist das gebräuchlichste Fensterverhalten.

10. Da Sie nur eine EXE im Hintergrund ausführen, ist es nicht notwendig, eine Fertigstellungsnachricht einzuschließen. Wählen Sie Keine Nachricht und klicken Sie auf Next.

11. Wählen Sie nun den Pfad zur EXE-Datei aus, die Sie erstellen möchten. Hier können Sie auch verschiedene Optionen aktivieren. Klicken Sie nach Abschluss auf Next
- Ausblenden des Fortschrittsanimationsfensters beim Dateiextrahieren vom Benutzer – Wenn Ihre EXE im Hintergrund läuft, lassen Sie diese Option deaktiviert.
- Dateien mit langem Dateinamen im Paket speichern – Um lange Dateinamen während des Extraktionsvorgangs beim Ausführen der EXE zu unterstützen. Die Option sollte deaktiviert bleiben, wenn Sie das Paket unter Win 95 ausführen und während der Installation eine INF-Datei verwenden.

12. Wenn Sie möchten, dass die EXE nach Abschluss des Skripts einen Neustart auslöst, können Sie hier Immer neu starten auswählen. Nach der Auswahl einer Option klicken Sie auf Next.

13. Wählen Sie nun Speichern Sie die Selbstextraktionsdirektive (SED)-Datei und klicken Sie auf Next. Das Speichern einer SED-Datei ermöglicht es Ihnen, alle bisher in diesem Assistenten bereitgestellten Optionen zu einem späteren Zeitpunkt zu ändern. Die SED-Datei enthält Antworten auf alle bisher bereitgestellten Werte.

14. Jetzt bleibt nur noch das Paket zu kompilieren. Klicken Sie auf Weiter, und Sie sehen einen Protokollprozess. Um das Paket zu erstellen, klicken Sie auf Beenden, und Sie sind fertig.
Erfordert Ausführung mit Administratorrechten
Wenn Sie ein Skript haben, das als Administrator ausgeführt werden muss, bietet IExpress keine Möglichkeit dazu, aber es ist dennoch möglich.
Vor dem Ausführen von IExpress kopieren Sie den folgenden Code und fügen Sie ihn oben in Ihr Skript ein. Dieser Codeausschnitt überprüft, ob das Skript als Administrator ausgeführt wird. Wenn nicht, wird es automatisch geschlossen und erneut mit Administratorrechten gestartet.
Beachten Sie, dass Sie den WindowStyle
**Parameter auf dem Bildschirm Fenster anzeigen entsprechend ändern müssen, je nachdem, wie Sie das Fenster der EXE anzeigen oder ausblenden möchten, wenn Sie es ausführen.
ISE Steroids
Wenn Sie gerne Skripte im PowerShell ISE schreiben, passt dieses Tool zu Ihrem Stil. ISE Steroids ist eine Erweiterung des PowerShell ISE-Editors, verpackt als PowerShell-Modul, das viele ISE-Funktionen hinzufügt.
ISE Steroids hat viele Funktionen, aber diejenige, für die Sie hier sind, ist ihre Fähigkeit, ein Skript in eine EXE-Datei umzuwandeln, also lassen Sie uns eintauchen.
- Angenommen, Sie haben bereits ISE Steroids installiert, öffnen Sie die PowerShell ISE.
2. Führen Sie im integrierten Konsolenfenster den Befehl Start-Steroids
aus, um die Erweiterung auszuführen und Steroids zu laden.
3. Öffnen Sie ein vorhandenes Skript oder schreiben Sie ein neues im Editorfenster. In diesem Tutorial werden diese Dateien verwendet.
4. Klicken Sie auf die Option Tools —> Code in EXE umwandeln wie im folgenden Screenshot.

5. Definieren Sie nun alle Optionen, die Sie auf die resultierende EXE anwenden möchten, in dem kleinen Fenster, wie im folgenden Beispiel. Diese Optionen sind Parameter, genau wie bei PS2EXE, um die Eigenschaften und das Verhalten Ihrer EXE-Datei zu konfigurieren.

6. Sobald Sie alle Optionen festgelegt haben, klicken Sie auf die Schaltfläche Anwendung erstellen. ISE Steroids fordert Sie dann auf, einen Zielordner auszuwählen. Danach ist die Umwandlung Ihrer PS1 in eine EXE abgeschlossen.
Visual Studio Code und PowerShell Pro Tools
Für unseren nächsten Editor stellen wir Ihnen Visual Studio (VS) Code vor. VS Code ist Microsofts empfohlener Ersatz für die PowerShell ISE und wird von vielen PowerShell-Entwicklern verwendet.
Auch wenn VS Code keinen nativen Weg bietet, PowerShell-Skripte in EXE-Dateien umzuwandeln, können Sie dies dennoch mit der PowerShell Pro Tools-Erweiterung erreichen. Neben der Umwandlung von Skripten in EXE-Dateien unterstützt die PowerShell Pro Tools-Erweiterung Sie beim Verpacken von Skripten, enthält einen GUI-Designer und mehr.
Die PowerShell Pro Tools erfordern sowohl das .NET 4.6.2 (oder neuer) Developer Pack als auch .NET Core 1.0 oder höher für das Verpacken von Skripten.
Sie verwenden das Get-LatestAppLog3.ps1 und AppLogsComplete.ps1 für diese Demonstration.
Angenommen, Sie haben VS Code und die PowerShell Pro Tools-Erweiterung installiert:
- Öffnen Sie VS Code und ein PowerShell-Skript, das in eine EXE-Datei umgewandelt werden soll.
2. Klicken Sie in der rechten oberen Ecke von VS Code auf die Schaltfläche Skript als Exe verpacken, wie unten gezeigt.

3. Wenn Sie zum ersten Mal eine EXE aus einem Skript erstellen, erstellt PowerShell Pro Tools eine package.psd1-Datei im Stammverzeichnis des aktuellen Arbeitsbereichs.

4. Innerhalb der package.psd1-Datei wird der genaue Pfad des Skripts zum Konvertieren automatisch für den Root-Schlüssel ausgefüllt. Definieren Sie den Schlüssel Ausgabepfad, um den Pfad zum Speichern der EXE anzugeben, wie unten gezeigt.

5. Wenn Sie eine EXE aus einem Skript erstellen, werden verschiedene Protokollmeldungen im Ausgabe-Bereich am unteren Rand des Bildschirms angezeigt. Wenn beim Kompilieren des Skripts Fehler auftreten, werden sie hier angezeigt.

Kompilieren anderer Skripte in derselben EXE
Wenn Sie abhängige Skripte in Ihrem Hauptskript aufrufen, kann die PowerShell Pro Tools-Erweiterung sich auch um diese kümmern. Dazu müssen Sie die Skripte, die mit der EXE enthalten sein sollen, dot-sourcen.
Das untenstehende Skript Get-LatestAppLog3.ps1 ist das Hauptskript zum Kompilieren. Darin wird das Skript AppLogsComplete.ps1 ausgeführt. Um sicherzustellen, dass PowerShell Pro Tools die abhängige Datei AppLogsComplete.ps1 einschließt, müssen Sie das Skript dot-sourcen oder in den aktuellen Gültigkeitsbereich des Skripts bringen.

Nachdem Sie alle abhängigen Skripte dot-sourcet haben, klicken Sie erneut auf Package Script as Exe, um Ihre Skripte in eine ausführbare Datei umzuwandeln.
PowerGUI
PowerGUI war einer der ursprünglichen PowerShell-Skripteditoren. Obwohl er anscheinend längst vergessen ist, können Sie immer noch Kopien im Web finden. Warum spricht man von einem längst vergessenen PowerShell-Skripteditor? Weil er einen integrierten PS1-zu-EXE-Konverter hat!
Obwohl die Website von PowerGUI nicht mehr existiert, können Sie eine Kopie auf Seiten wie Softpedia finden.
Kompilieren eines PS1-Skripts zu einer EXE-Datei
Nach der Installation von PowerGUI starten Sie es, und Sie gelangen zur Startseite. Um Ihre Skripte zu kompilieren, können Sie entweder ein neues Skript erstellen oder ein vorhandenes über die Symbolleiste öffnen, wie im untenstehenden Screenshot gezeigt.

Wenn Sie mit Ihrem Skript zufrieden sind, klicken Sie auf das Tools-Menü. Wählen Sie dann Compile Script aus oder drücken Sie Ctrl+F9 auf Ihrer Tastatur.

Konfigurieren Sie nun, wie Sie möchten, dass die EXE nach der Konvertierung ausgeführt wird. Das Fenster Compile Script enthält verschiedene Optionen für das Verhalten der EXE, wie unten gezeigt.
- Klicken Sie auf die Schaltfläche Browse und suchen Sie Ihre PS1, die Sie konvertieren möchten.
2. PowerGUI unterstützt das Ziel-Framework von Microsoft .NET Framework 3.5 bis .NET Framework 4.0.
3. Wenn Sie möchten, dass die EXE nur im Hintergrund ausgeführt wird, deaktivieren Sie die Option „PowerShell-Konsole anzeigen, wenn das Skript ausgeführt wird“.
4. Sie können auch auf die Schaltfläche „Abhängigkeiten“ (unten links) klicken, wenn Sie andere Dateien einbinden möchten. Normalerweise handelt es sich um andere PowerShell-Skripte, von denen Ihr Skript abhängt.
5. Wenn Sie mit der Konfiguration zufrieden sind, klicken Sie auf „OK“, um Ihre PS1 in eine EXE umzuwandeln.

Übrigens werden Sie beim Einsatz von PowerGUI feststellen, dass es Einschränkungen bei der Steuerung gibt, wie Sie möchten, dass die EXE ausgeführt wird. PowerGUI bietet nicht viele Optionen wie das Hinzufügen von Parametern.
PowerGUI bietet auch nicht die Möglichkeit, Informationen wie Copyright, Version und Beschreibung einzubetten, im Gegensatz zu anderen PS1-zu-EXE-Generatoren. Wenn Sie das jedoch nicht allzu sehr stört, dann ist PowerGUI eine gute Option, die Sie beibehalten können.
PowerShell Studio
Um unsere Liste der PS1-zu-EXE-Konverter abzuschließen, lassen Sie uns mit einem der funktionsreichsten PowerShell-IDEs enden: PowerShell Studio von Sapien Technologies. Von Grund auf als ausschließliche PowerShell-IDE konzipiert, wäre es unfair gegenüber PowerShell Studio, nur seine Fähigkeit zur Konvertierung von PS1s in EXEs zu demonstrieren. Dennoch haben wir nur eine begrenzte Menge Platz!
Genau wie PowerShell Pro Tools in Visual Studio Code hat auch PowerShell Studio strenge Anforderungen für das Verpacken von Skripten; wie z.B. .NET Framework 4.8, .NET 5 für PowerShell 7 und Visual Studio 2015-2019-Runtime
Angenommen, Sie haben PowerShell Studio installiert, öffnen Sie PowerShell Studio und erstellen oder öffnen Sie ein vorhandenes PowerShell-Skript. Dieses Tutorial wird das Skript Get-LatestAppLog3.ps1 verwenden.
Einstellungen navigieren
Bevor Sie ein Skript in PowerShell Studio konvertieren, sollten Sie zunächst die Vielzahl von Möglichkeiten kennenlernen, wie Sie das Verhalten der resultierenden EXE ändern können.
Klicken Sie auf die Schaltfläche Paket in der oberen rechten Ecke des Fensters und wählen Sie Einstellungen. Dies öffnet das Fenster Script Packager, in dem Sie alle verfügbaren Optionen definieren können.

Jede Option im Script Packager spielt eine wichtige Rolle dabei, wie die Ausgabe Ihrer EXE-Datei aussehen soll. Diese Optionen werden in den folgenden Abschnitten mit Screenshots demonstriert.
Skript-Engine
Der Abschnitt Skript-Engine konzentriert sich auf die Zielplattform und den Skript-Engine zum Kompilieren Ihrer ausführbaren Datei.
Starten Sie mit der Auswahl Ihres Ziels. Sie können entweder eine 32-Bit- oder 64-Bit-Version von Windows auswählen oder beide für mehr Flexibilität. PowerShell Studio erstellt für jede Plattform, die Sie hier auswählen, eine EXE-Datei.

Ausgabe-Einstellungen
In diesem Abschnitt gibt es Optionen, um zu konfigurieren, wie die EXE-Datei nach dem Kompilieren aussehen wird.
- Ausgabedatei – Der Name der resultierenden EXE.
Enthalten Sie keine Dateierweiterung (.exe), da diese automatisch für Sie für das Feld festgelegt wird.
- Ausgabeordner – Wo PowerShell Studio die ausführbare Datei speichern wird.
- Externe Skripte auflösen und einbeziehen – Stellen Sie sicher, dass diese Option aktiviert ist, wenn Sie abhängige Skripte in Ihrem Hauptskript haben. Wenn Sie dies nicht aktivieren, werden externe Skripte beim Kompilieren Ihrer ausführbaren Datei ignoriert.
Stellen Sie immer sicher, dass abhängige Skripte im selben Ordner wie das Hauptskript sind.
- Signieren – Ein Ort, an dem Sie nach einem Zertifikat suchen können, um die EXE zusammen mit dem Passwort zum Zertifikat zu signieren (falls vorhanden).

Symbol-Dateien
Ein Symbol hilft Ihnen, Anwendungen voneinander zu unterscheiden, und der Abschnitt Symbol-Dateien gibt Ihnen die Möglichkeit, ein Symbol für Ihre ausführbare Datei hinzuzufügen.
Um eine Symbol-Datei hinzuzufügen, klicken Sie auf die Schaltfläche Datei hinzufügen oder ziehen Sie die Symbol-Datei einfach in den Abschnitt Symbol-Dateien.

Beschränkungen
Im Abschnitt Beschränkungen können Sie Kriterien einschließen oder ausschließen, um die Ausführung von EXE-Dateien zu erlauben.
Das Markieren eines Betriebssystems stellt sicher, dass die resultierende EXE-Datei nur auf diesem Betriebssystem ausgeführt wird. Ebenso können Sie Kriterien festlegen, wie zum Beispiel, dass ein bestimmter Benutzer angemeldet sein muss, der Computer eine bestimmte MAC-Adresse haben muss und mehr.
Wie Sie unten sehen können, haben Sie volle Kontrolle darüber, wann die resultierende EXE-Datei ausgeführt wird.

Versionsinformationen
Wenn PowerShell Studio eine EXE-Datei erstellt, hat diese verschiedene Dateiattribute. Im Abschnitt Versionsinformationen können Sie festlegen, wie diese Attribute aussehen sollen.
Hier können Sie Attribute wie Dateiversion, Produktversion, Copyright usw. festlegen. Sie können alle verfügbaren Attribute unten sehen.

Build-Optionen
Zu guter Letzt finden Sie einen Abschnitt Build-Optionen. In diesem Abschnitt können Sie benutzerdefinierte Vor- oder Nachbau-Befehle hinzufügen, die ausgeführt werden sollen. Diese Option führt PowerShell-Befehle vor oder nach dem Kompilieren des Skripts zu einer ausführbaren Datei aus.
Angenommen, Sie möchten nach Abschluss des Erstellens der EXE-Datei durch PowerShell Studio einige Codes ausführen. Klicken Sie dazu auf die Schaltfläche Neu (Einfügen) im Feld Nachbau-Befehle. Sowohl die Vor- als auch die Nachbau-Befehle akzeptieren PowerShell-Befehle direkt.
Alternativ können Sie auf die Schaltfläche Datei hinzufügen (Auslassungspunkte) klicken und eine andere Anwendung oder ein PowerShell-Skript auswählen, das ausgeführt werden soll.

Nachdem Sie alles eingerichtet haben, klicken Sie auf OK, um das Skript zu einem ausführbaren Paket zu schnüren. Der Dateispeicherort wird automatisch geöffnet, damit Sie die ausführbare Datei überprüfen können.
Buchführung für externe PowerShell-Skriptabhängigkeiten
A PowerShell script sometimes isn’t a self-contained unit. A script can also call other scripts. When converting to an EXE, some of the tools discussed here do not automatically find these dependent scripts and compile them.
Wenn ein Skript auf ein anderes Skript verweist und dieses Skript in eine EXE umgewandelt wird, kann sich der Pfad ändern. Wenn dies geschieht, kann der PowerShell-Code innerhalb der EXE das abhängige Skript nicht finden und schlägt fehl.
Vielleicht haben Sie ein Skript, das Sie konvertieren möchten, das andere Skripts im selben Ordner aufruft. Wenn Sie das Skript über die PowerShell-Konsole ausführen, kann es diese Skripts finden, da sie sich alle im gleichen Arbeitsverzeichnis befinden. Wenn Sie ein Skript in eine EXE konvertieren, kann dies unterbrochen werden.
Wenn Sie beabsichtigen, ein PS1 in eine EXE zu konvertieren und dieses Skript ruft andere Skripts im selben Verzeichnis auf, fügen Sie den folgenden Code-Schnipsel oben in Ihr Skript ein.
Dieser Code-Schnipsel unten löst den Pfad eines externen Skripts auf, das Sie aus dem Hauptskript heraus ausführen, solange sich beide im gleichen Verzeichnis befinden.
Vergleich der Funktionen
Wenn Sie sich noch nicht entschieden haben, wie Sie eine EXE aus einem PowerShell-Skript erstellen möchten, werfen Sie einen Blick auf die unten stehende Tabelle. Diese Tabelle bietet einen Überblick über die Funktionen jedes Tools, um Ihnen bei der Entscheidung zu helfen, welches Tool Ihr bevorzugter PS1-zu-EXE-Konverter sein soll.
