Konvertieren Sie die PowerShell-Datei in eine ausführbare Datei
Wir können PowerShell-Skripte (PS1
) auf viele verschiedene Arten aufrufen, aber sie alle haben einen Nachteil, wir können sie nicht einfach wie ein standardmäßiges ausführbares Windows-Programm (EXE
) ausführen. Wir möchten verhindern, dass der Code in einem Skript bearbeitet wird, oder es unseren Benutzern erleichtern, Skripte auszuführen.
Es ist also an der Zeit zu lernen, wie man eine PS1
in eine EXE
umwandelt. In diesem Artikel wird die Verwendung des Moduls PS1
zum EXE
-Modul und die ordnungsgemäße Konvertierung von PowerShell-Dateien in ausführbare Dateien erläutert.
Verwenden Sie das Dienstprogramm PSEXE
, um PS1
in EXE
in PowerShell zu konvertieren
PS2EXE
ist ein kostenloses Open-Source-Windows PowerShell-Modul, das das PowerShell-Skript nicht in eine andere Sprache konvertiert.
Stattdessen kapselt es das PowerShell-Skript mit einem leichtgewichtigen PowerShell-Host, der in der Sprache C# geschrieben ist, und kompiliert den dynamisch generierten C#-Code im Arbeitsspeicher in eine ausführbare Datei.
Installieren Sie das PSEXE
-Modul in PowerShell
Da PS2EXE
das Modul verwendet, um unser Skript in eine ausführbare Datei umzuwandeln, müssen wir es aus der PowerShell-Galerie installieren. Befolgen Sie die Anweisungen zur Installation des Utility-Moduls PS2EXE
.
-
Öffnen Sie als Administrator eine PowerShell-Konsole.
-
Führen Sie das Cmdlet
Install-Module
aus, um das Modul aus der PowerShell-Galerie herunterzuladen und zu installieren.Install-Module ps2exe
-
Geben Sie
Y
ein und drücken Sie Enter, sobald wir die Eingabeaufforderung über ein nicht vertrauenswürdiges Repository sehen. Mach dir keine Sorge; Diese Meldung ist harmlos.Untrusted repository You are importing the modules from an untrusted location. If you trust this location, change its InstallationPolicy by running the Set-PSRepository command. Are you certain you want to install the modules from the 'PSGallery'? [Y] Yes [N] No [?] Help (default is "N"): Y
Konvertieren Sie PS1
in EXE
mit PowerShell
Das Konvertieren eines einzelnen Windows PowerShell-Skripts in eine ausführbare Datei über die Befehlszeile erfordert eine einzige Zeile mit dem Hauptbefehl PS2EXE
(Invoke-PS2EXE
). Auf den Befehl folgt dann der Pfad des zu konvertierenden Skripts und der Pfad zu der ausführbaren Datei, die wir erstellen möchten.
## Use the cmdlet
Invoke-PS2EXE .\test.ps1 .\sample.exe
## Using the alias
ps2exe .\test.ps1 .\sample.exe
Wir können jetzt sample.exe
ausführen, was den im source.ps1
-Skript definierten Code aufruft. Wenn wir bei der Konvertierung unseres Skripts den Parameter NoConsole
nicht verwendet hätten, würde beim Ausführen der Datei sample.exe
eine PowerShell-Konsole erscheinen.
Blenden Sie die Konsole aus
Im vorherigen Beispiel erscheint beim Ausführen von sample.exe
eine typische PowerShell-Konsole. Meistens wollen wir das nicht sehen.
Um dies zu verhindern, können wir den Parameter NoConsole
beim Erstellen der EXE
verwenden.
Invoke-ps2exe "D:\PS\Script.ps1" "D:\PS\Sample.exe" -noConsole
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn