Dicas de Programas & SitesPower ShellScriptsWindows

Convertendo Powershell Scripts em Executáveis (ps1 para exe)

5K views
5 Comentários
5
(2)

Olá, Pessoal
A dica de hoje pode facilitar a vida de quem deseja automatizar tarefas com Powershell. Conforme o título sugere, o script abaixo converte arquivos Powershell (PS1) em executáveis (EXE).

Descrição do desenvolvedor

Nos últimos dias criei a ferramenta “PS2EXE” que é capaz de “converter” scripts do PowerShell para arquivos EXE “autônomos”.
Observação: Ele não converte o script PowerShell a uma outra línguagem. Ele encapsula o script com um host PowerShell leve escrito em C # e compila o código-fonte c # gerado dinamicamente na memória para um arquivo EXE. O EXE resultante é um assembly .NET que contém o script de origem codificado no Base64.
O EXE inclui todas as coisas necessárias para executar um PowerShell através do modelo de objeto .NET. Baseia-se em classes no namespace System.Management.Automation que reúne o mecanismo PowerShell. – Portanto, o arquivo EXE não é um verdadeiro arquivo EXE “autônomo”. Precisa do PowerShell instalado para ser usado! E – claro – ele precisa do .NET Framework v2.0. Além disso, a “execução do script” deve ser permitida (ver cmdlet: set-execultionpolicy). – O EXE resultante é “MSIL” e pode ser executado como x64 ou x86.
A ferramenta “PS2EXE” em si é um script do PowerShell! – Faz a compilação na memória e gera o arquivo EXE. Ele usa a classe CSharpCodeProvider do namespace Microsoft.CSharp.
O script é realmente simples. Eu contém uma string multilinha que representa o host do PowerShell que escrevi.

Sintaxe:

Utilize o script com estes parâmetros:

-inputFile Arquivo de script do PowerShell
-outputFile nome do arquivo (com caminho) para o arquivo EXE de destino
-debug (opcional) gera informações de depuração no arquivo EXE de destino. O arquivo .CS gerado dinamicamente será armazenado ao lado do arquivo EXE de saída. Além disso, um arquivo .PDB será gerado para o arquivo EXE
-verbose (opcional) mostra também informações detalhadas – se houver.
-x86 (opcional) compilar EXE para executar como aplicativo de 32 bits
-x64 (opcional) compilar EXE para executar como aplicativo de 64 bits
-runtime20 (opcional) forçar a execução do EXE no PowerShell 2.0 usando o .NET 2.0
-runtime30 (opcional) forçar a execução do EXE no PowerShell 3.0 usando o .NET 4.0
-lcid (opcional) especifique ID de idioma para tópicos
-sta (opcional) Execute o ambiente PowerShell no modo Single Thread Apartment
-mta (opcional) Execute o ambiente PowerShell no modo Multithread Apartment
-noconsole (opcional) compilar script PS como aplicativo do Windows

Exemplo de uso:


O Exemplo acima cria “test.exe” fora do arquivo de origem do PowerShell “test.ps1”
Limitações: não é fácil criar um host PowerShell totalmente funcional, como “console host” (powershell.exe) ou “ISE” (powershell_ise.exe). Portanto, pode haver funcionalidades que não funcionem corretamente.

O EXE gerado também pode ser chamadas usando opções de linha de comando. Existem 4 opções que são usadas pelo host PowerShell:

-debug Força o EXE a ser depurado. Ele chama “System.Diagnostics.Debugger.Break ()”.
-extract: “Nome do arquivo” Extrai o script do PowerShell dentro do EXE e o salva como “Nome do arquivo”. O script não será executado.
-wait No final da execução do script, ele escreve “Pressione uma tecla …” e espera que uma tecla seja pressionada.
-end Todas as opções a seguir serão passadas para o script dentro do EXE. Todas as opções anteriores são usadas pelo EXE e não serão passadas para o script.

Verificado nas seguintes plataformas

Windows 10 No
Windows Server 2012 Yes
Windows Server 2012 R2 No
Windows Server 2008 R2 Yes
Windows Server 2008 Yes
Windows Server 2003 No
Windows 8 Yes
Windows 7 Yes
Windows Vista No
Windows XP No
Windows 2000 No

Download do Script:

Script – Convertendo Powershell para EXE (Ps1 para exe)
Script – Convertendo Powershell para EXE (Ps1 para exe)

Download alternativo:

https://github.com/ikarstein/ps2exe/releases

Créditos

O artigo foi traduzido do Script Center Microsoft e os devidos créditos você confere abaixo:
https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-Convert-PowerShell-9e4e07f1

O que você achou disso?

Média da classificação 5 / 5. Número de votos: 2

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Como você achou esse post útil...

Ajude o site a crescer compartilhando o conteúdo

Lamentamos que este post não tenha sido útil para você!

Vamos melhorar este post!

Diga-nos, como podemos melhorar este post?

Tags: dica, dicas; windows powershell, exe, powershell, ps1, script

Artigos Relacionados

5 Comentários. Deixe novo

Gostou do conteúdo? Deixe seu comentário

Secured By miniOrange