Convierta un archivo de PowerShell en un archivo ejecutable
Podemos invocar los scripts de PowerShell (PS1
) de muchas maneras diferentes, pero todos tienen un inconveniente, no podemos simplemente ejecutarlos como un programa ejecutable estándar de Windows (EXE
). Queremos evitar la edición del código en un script o facilitar que nuestros usuarios ejecuten scripts.
Así que es hora de aprender a convertir una PS1
a un EXE
. Este artículo discutirá el uso del módulo PS1
al EXE
y la conversión adecuada de archivos PowerShell en archivos ejecutables.
Use la utilidad PSEXE
para convertir PS1
a EXE
en PowerShell
PS2EXE
es un módulo de Windows PowerShell gratuito y de código abierto que no convierte el script de PowerShell a otro idioma.
En su lugar, encapsula el script de PowerShell con un host ligero de PowerShell escrito en el lenguaje C# y compila el código C# generado dinámicamente en la memoria en un archivo ejecutable.
Instale el Módulo PSEXE
en PowerShell
Dado que PS2EXE
usa el módulo para convertir nuestro script en un ejecutable, debemos instalarlo desde la Galería de PowerShell. Siga las instrucciones para instalar el módulo de utilidad PS2EXE
.
-
Abra una consola de PowerShell como administrador.
-
Ejecute el cmdlet
Install-Module
para descargar e instalar el módulo desde la Galería de PowerShell.Install-Module ps2exe
-
Escriba
Y
y presione Enter una vez que veamos el mensaje sobre un repositorio que no es de confianza. No te preocupes; este mensaje es inofensivo.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
Convierta PS1
a EXE
usando PowerShell
Convertir un solo script de Windows PowerShell en un archivo ejecutable a través de la línea de comandos requiere una sola línea usando el comando principal PS2EXE
(Invoke-PS2EXE
). Luego, el comando es seguido por la ruta del script para convertir y la ruta al archivo ejecutable que nos gustaría crear.
## Use the cmdlet
Invoke-PS2EXE .\test.ps1 .\sample.exe
## Using the alias
ps2exe .\test.ps1 .\sample.exe
Ahora podemos ejecutar sample.exe
, que invocará el código definido en el script source.ps1
. Si no usamos el parámetro NoConsole
al convertir nuestro script, aparecería una consola de PowerShell al ejecutar el archivo sample.exe
.
Ocultar la consola
En el ejemplo anterior, al ejecutar sample.exe
, aparecerá una consola típica de PowerShell. La mayoría de las veces, no queremos ver esto.
Podemos usar el parámetro NoConsole
al crear el EXE
para evitar eso.
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