Convierta un archivo de PowerShell en un archivo ejecutable

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.

  1. Abra una consola de PowerShell como administrador.

  2. Ejecute el cmdlet Install-Module para descargar e instalar el módulo desde la Galería de PowerShell.

    Install-Module ps2exe
    
  3. 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Script