O Guia Prático para Converter um PS1 para EXE (7 Maneiras)

Você pode invocar scripts do PowerShell de várias maneiras diferentes, mas todos eles têm uma desvantagem: você não pode simplesmente executá-los como um programa Windows padrão (EXE). Talvez você queira evitar a edição do código em um script ou facilitar para seus usuários executarem scripts. É hora de aprender como converter um arquivo PS1 para um EXE.

Neste tutorial, você aprenderá como usar geradores de PS1 para EXE e também poderá compará-los para decidir qual é o melhor de acordo com sua preferência.

Requisitos

Diferentes ferramentas são demonstradas ao longo deste tutorial com instruções passo a passo sobre como converter um arquivo PS1 para EXE. Certifique-se de ter todos os requisitos abaixo para acompanhar.

  • A Windows computer with an administrator privileges
  • No Windows 7, 8.1 e 10, o PowerShell já está incluído ao instalar o sistema operacional. Embora alguns scripts possam ser executados com o PowerShell 3.0, é muito melhor obter PowerShell 5.1 ou PowerShell 7
  • Seu política de execução do PowerShell deve permitir a execução de scripts

PS2EXE

A utilidade PS2EXE é a primeira ferramenta da nossa lista. PS2EXE é um módulo PowerShell gratuito e de código aberto que, segundo o autor Ingo Karstein, “não converte o script do PowerShell para outra linguagem. 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.”

Visite o blog do Ingo Karstein para saber mais sobre como o PS2EXE começou. O desenvolvimento do módulo parou por volta de 2017, mas Markus Scholtes assumiu a evolução do PS2EXE criando uma versão GUI também.

Instalando o Módulo PS2EXE

O PS2EXE começou como um script PowerShell, e quando Markus Scholtes assumiu o desenvolvimento, um módulo ficou disponível. Como o PS2EXE usa o módulo para converter seu script em um executável, você precisará instalá-lo a partir da Galeria PowerShell.

Siga as instruções abaixo para instalar o módulo PS2EXE.

  1. Abra um console PowerShell como administrador.

2. Execute o comando Install-Module para baixar e instalar o módulo da PowerShell Gallery

Install-Module ps2exe

3. Digite Y e pressione Enter quando você vir o aviso sobre um repositório não confiável. Não se preocupe. Esta mensagem é inofensiva.

Untrusted repository
 You are installing the modules from an untrusted repository. If you trust this repository, change
 its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to
 install the modules from 'PSGallery'?
 [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

Convertendo PS1 para EXE via Linha de Comando

O PS2EXE oferece duas maneiras de converter scripts do PowerShell em arquivos EXE; via linha de comando e uma interface gráfica. Vamos primeiro abordar o uso da linha de comando.

Para converter um único script do PowerShell em EXE via linha de comando, você precisa de uma única linha fornecendo o comando principal do PS2EXE (Invoke-PS2EXE) seguido pelo caminho do script a ser convertido e o caminho do EXE que você deseja criar.

## Use o nome completo do comando
Invoke-ps2exe .\source.ps1 .\target.exe

## Use o alias
ps2exe .\source.ps1 .\target.exe

Agora você pode executar target.exe, e ele invocará o código definido no script source.ps1. Se você não usou o parâmetro NoConsole ao converter seu script, um console do PowerShell aparecerá ao executar o arquivo target.exe.

Ocultando o Console

No exemplo anterior, ao executar target.exe, um console típico do PowerShell aparecerá. Na maioria das vezes, você não quer ver isso. Para evitar isso, você pode usar o parâmetro NoConsole ao criar o EXE, como mostrado abaixo.

Invoke-ps2exe "D:\Test\Get-LatestAppLog.ps1" "D:\Test\Get-LatestAppLog.exe" -noConsole
Converting PS1 to EXE with PS2EXE Command-Line

Você também pode optar por compilar o EXE apenas para a execução x86 ou x64, entre outras opções. Você pode encontrar uma lista de parâmetros disponíveis na página de lançamento do GitHub.

Conversão de PS1 para EXE via Ferramenta PS2EXE-GUI

Se você não gosta da linha de comando, também pode usar uma interface gráfica com o módulo PS2EXE. Desenvolvida um pouco mais tarde, a versão GUI oferece praticamente todas as mesmas funcionalidades da versão de linha de comando.

Leva apenas alguns cliques para converter PS1 para EXE com a versão GUI do PS2EXE. E, ao contrário da linha de comando, você pode navegar e selecionar o arquivo de origem (PS1) em uma caixa de diálogo agradável do File Explorer.

Para executar a versão GUI, você precisará ter o .NET 4.x em seu computador. Se você tiver apenas o .NET 3.5x, você pode baixar a versão PS2EXE-GUI para .NET 3.5x separadamente.

Supondo que você já tenha instalado o módulo PowerShell PS2EXE acima, abra o File Explorer e navegue para uma das pastas de módulos PS2EXE abaixo e abra a pasta que representa a versão do módulo.

Windows 32 bits: C:\Program Files (x86)\WindowsPowerShell\Modules\ps2exe\<version>

Windows 64 bits: C:\Program Files\WindowsPowerShell\Modules\ps2exe\<version>

Dentro dessas pastas, você encontrará um arquivo chamado Win-PS2EXE.exe.

  1. Abra a utilidade C:\Program Files\WindowsPowerShell\Modules\ps2exe\<version>\Win-PS2EXE.exe.

2. Clique nos três pontos diretamente à direita da caixa Arquivo de origem para localizar o script PS1 que você deseja converter.

3. Defina o valor para a Arquivo de destino e certifique-se de incluir a extensão do arquivo .exe.

4. Escolha quaisquer personalizações para a conversão que desejar abaixo. Esta é simplesmente uma representação gráfica da parâmetros que você pode usar para o seu script, assim como a versão de linha de comando.

5. Clique em Compilar para iniciar o processo de conversão.

Converting PS1 to EXE with PS2EXE GUI

6. Quando você clicar no botão Compilar, o PS2EXE abrirá uma sessão do PowerShell e realizará a conversão. Uma vez concluído, pressione Enter ou feche a janela do console.

Successfully Converted PS1 to EXE

FYI: Alguns arquivos executáveis compilados com o PS2EXE podem ser detectados como vírus pelo seu software antivírus. Se isso acontecer, certifique-se de relatar esses falsos positivos ao fornecedor do seu antivírus.

PS1 para EXE

O PS1 para EXE é outra aplicação gratuita para desktop desenvolvida pela F2KO Software que permite converter um arquivo PS1 para um arquivo EXE. O Ps1 to Exe, ao contrário do PS2EXE, é uma ferramenta GUI completa com um editor de script simples.

Assim como o PS2EXE, o Ps1 to Exe também possui versões tanto para GUI quanto para linha de comando. No entanto, em vez do console do PowerShell, o Ps1 to Exe exige que você execute os comandos dentro do Prompt de Comando.

Infelizmente, embora o site da F2KO ainda esteja ativo, parece não haver uma maneira de baixar o PS1 to EXE de lá. Felizmente, um instalador baixável dessa ferramenta tem circulado na internet.

Vamos ver como executar e usar o PS1 to EXE para criar um EXE a partir de um script do PowerShell.

Converter PS1 para EXE Usando a Interface Gráfica

Depois de instalar e iniciar o Ps1 to Exe, você notará que o PS1 to EXE possui um editor de scripts simples. Dentro deste editor de scripts, você pode construir e salvar scripts e clicar em um botão para convertê-los.

O Ps1 to Exe suporta dot-sourcing; observe como outro arquivo PS1 foi chamado com o comando abaixo.

## Chamar AppLogsComplete.ps1
try { .\AppLogsComplete.ps1 } catch { exit }

Para converter um script para um EXE com o PS1 to EXE:

  1. Abra a ferramenta PS1 to EXE a partir da sua área de trabalho.

2. Clique em Arquivo —> Abrir, encontre o script que deseja converter e abra-o.

Depois de abrir o script, configure como deseja que o EXE compilado seja executado. Do lado direito da tela, você verá um painel com três abas para explorar. Cada uma dessas abas possui uma opção de configuração diferente que você pode escolher.

Configuring The EXE Output Settings

3. Para adicionar scripts dependentes, clique na aba Embutir e depois clique em Adicionar.

4. Quando estiver satisfeito com as opções de conversão, clique no botão Converter na barra de ferramentas superior para converter o script em um EXE.

Adding Dependent Scripts And Converting Script to EXE

Convertendo PS1 para EXE usando a Linha de Comando

Se preferir usar a linha de comando, o PS1 to EXE CLI é chamado ps1_to_exe.exe, mas usá-lo é um pouco complicado.

Com o PS1 to EXE aberto:

  1. Abra um Prompt de Comando como administrador

2. Altere o diretório de trabalho para a pasta de instalação do PS1 to EXE.

x86
 cd 'C:\Program Files (x86)\Ps1 to Exe'
 x64
 cd 'C:\Program Files\Ps1 to Exe'

3. Agora execute ps1_to_exe para converter o PS1 em um executável.

O comando abaixo também inclui um script dependente no arquivo EXE compilado e define a plataforma de destino dos arquivos executáveis para um sistema operacional Windows de 64 bits.

ps1_to_exe /ps1 "D:\Test\Get-LatestAppLog4.ps1" /exe "D:\Test\Get-LatestAppLogs.exe" /include "D:\Test\AppLogsComplete.ps1" /invisible /x64

Aqui está uma demonstração do processo de conversão real e detalhes de saída.

Converting Script to Executable Using Ps1 to Exe Command-Line Version

IExpress 2.0

Se você prefere não baixar mais uma ferramenta, está com sorte, porque você tem a antiga e clássica utilidade IExpress à sua disposição. O IExpress é um aplicativo embutido no Windows que geralmente é usado para empacotar arquivos ou criar instaladores de software.

Acontece que o IExpress também pode converter scripts PS1 em EXEs enquanto compila os arquivos de dependência todos juntos em um único arquivo executável!

Para converter um simples script do PowerShell em EXE:

  1. Você deve abrir o IExpress como administrador. Pressione a tecla Windows*+R* para abrir a caixa de diálogo Executar, digite iexpress e pressione a tecla Ctrl+Shift+Enter.
Running IExpress As Administrator

2. Na página de boas-vindas do IExpress, selecione Criar novo arquivo de Diretiva de Autoextração e clique em Avançar para configurar o seu pacote. O arquivo Diretiva de Autoextração (SED) controla as opções usadas ao construir um pacote de instalação; pense nele como um arquivo de configuração.

Create New Self Extraction Directive File

3. Selecione a opção Extrair arquivos e executar um comando de instalação e clique em Avançar. Se estiver criando um instalador de software, esta opção extrai arquivos que você incluirá no pacote. Esta opção também permite que você escreva um comando personalizado para executar o script quando executar o arquivo executável.

Selecting An Action To Take When Running The EXE

4. Agora forneça um Título do Pacote e clique em Avançar. O título do pacote aparecerá em todos os prompts que o usuário verá durante a instalação.

O título do pacote se aplica apenas se você estiver criando um instalador de software. Neste caso, o título não importa.

Setting A Title For The Package

6. Em seguida, escolha Sem prompt. Escolher Sem prompt não solicita ao usuário uma caixa de diálogo desnecessária quando executam o EXE.

No Prompt

6. Se estiver criando o pacote para um projeto que requer um Contrato de Licença do Usuário Final (EULA), você pode optar por adicionar uma licença para mostrar quando executar o EXE. Para esta demonstração, porém, escolha a opção Não exibir licença e clique em Avançar.

Adding an End User License Agreement

7. Agora clique em Adicionar e navegue por todos os scripts que deseja incluir neste EXE. Certifique-se de incluir o script principal que pretende chamar e quaisquer scripts dependentes e outros arquivos aos quais os scripts fazem referência.

Selecting Files To Include In The Package

8. Na janela Programa de Instalação para Iniciar, forneça o caminho para o mecanismo powershell.exe usando o parâmetro Arquivo. Além disso, certifique-se de definir o parâmetro ExecutionPolicy como Bypass para garantir que quaisquer políticas de execução pré-configuradas não impeçam a execução do script.

powershell.exe -ExecutionPolicy Bypass -File Get-LatestAppLog.ps1
Writing Custom Command

9. Em seguida, você pode definir como deseja que as janelas do EXE se comportem quando executadas. Se o EXE deve ser executado em segundo plano, escolha Oculto e clique em Avançar. Oculto é o comportamento de janela mais comum.

Selecting EXE’s Window Behavior On Execution

10. Como você está apenas executando um EXE em segundo plano, não há necessidade de incluir uma Mensagem de Conclusão. Selecione Sem Mensagem e clique em Avançar.

Setting Up Post Installation Message

11. Agora selecione o caminho para o EXE que você deseja criar. Aqui você também pode habilitar algumas opções diferentes. Quando terminar, clique em Avançar.

  • Ocultar Animação de Progresso de Extração de Arquivos do Usuário – Se o seu EXE for executado em segundo plano, mantenha esta opção desabilitada.
  • Armazenar Arquivos usando Nome de Arquivo Longo dentro do Pacote – Para suportar Nomes de Arquivo Longo durante o processo de extração ao executar o EXE. A opção deve ser deixada desabilitada se você for executar o pacote no Win 95 e estiver usando um arquivo INF durante a instalação.
Setting Up Target Path And File Name

12. Se desejar que o EXE invoque uma reinicialização após a conclusão do script, aqui você pode selecionar Sempre reiniciar. Após selecionar uma opção, clique em Avançar.

Choosing Whether To Require A Restart Or Not

13. Agora selecione Salvar Arquivo de Diretiva de Autoextração (SED) e clique em Avançar. Salvar um arquivo SED permite modificar quaisquer opções fornecidas até agora neste assistente em um momento posterior. O arquivo SED contém respostas para todos os valores fornecidos até agora.

Saving Information About The Package Configuration

14. Agora tudo o que resta é compilar o pacote. Clique em Avançar, e você verá um registro do processo. Para completar a criação do pacote, clique em Concluir e está pronto.

Requerendo Privilégios de Execução como Administrador

Se você possui um script que requer ser executado como administrador, o IExpress não oferece uma opção para isso, mas ainda é possível.

Antes de executar o IExpress, copie o código abaixo e cole-o no topo do seu script. Este trecho de código verifica se o script está sendo executado como administrador. Se não estiver, ele será encerrado e o script será executado novamente com privilégios de administrador automaticamente.

Lembre-se de que você precisa alterar o parâmetro WindowStyle na tela Mostrar Janela dependendo de como deseja mostrar ou ocultar a janela do EXE quando o executar.

param([switch]$Elevated)

function Test-Admin {
    $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
    $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
## Testar se o script está sendo executado como administrador, se não, executá-lo novamente como administrador
if ((Test-Admin) -eq $false){ 
    if ($elevated) {
    } else {
        try{
            Start-Process powershell.exe -WindowStyle Hidden -Verb RunAs -ArgumentList ('-noprofile -file "{0}" -elevated' -f ($MyInvocation.MyCommand.Definition))
            ## Estilos de Janela: Normal, Minimizado, Maximizado e Oculto

						## ------> O RESTO DO SEU SCRIPT VAI AQUI <------ ##

        }
        catch{
            exit
        }
    }
    exit
}

ISE Steroids

Se você gosta de escrever scripts no PowerShell ISE, esta ferramenta se adequa ao seu estilo. ISE Steroids é uma extensão para o editor PowerShell ISE embalado como um módulo PowerShell que adiciona muitos recursos ao ISE.

  1. ISE Steroids tem muitos recursos, mas o que você está procurando é sua capacidade de converter um script em um arquivo EXE, então vamos lá.

Supondo que você já tenha o ISE Steroids instalado, abra o PowerShell ISE.

2. Na console integrada, execute Start-Steroids para iniciar a extensão e carregar o Steroids.3. Abra ou escreva um novo script na janela do editor. Este tutorial usará esses arquivos.

4. Clique em Ferramentas —> Converter Código em EXE, assim como na captura de tela abaixo.

Compiling PS1 to EXE

5. Agora defina todas as opções que deseja aplicar ao EXE resultante na pequena janela, como a mostrada abaixo. Essas opções são parâmetros, iguais aos do PS2EXE, para configurar as propriedades e o comportamento do seu arquivo EXE.

Configuration For The Executable File

6. Depois de definir todas as opções, clique no botão Criar Aplicativo. O ISE Steroids então pedirá para você escolher um caminho de destino. Depois disso, você terá convertido seu PS1 para EXE.

Visual Studio Code e PowerShell Pro Tools

Para o próximo editor, apresentamos o Visual Studio (VS) Code. O VS Code é a substituição recomendada pela Microsoft para o PowerShell ISE e foi adotado por muitos desenvolvedores do PowerShell.

Embora o VS Code não tenha uma maneira nativa de converter scripts do PowerShell em EXEs, você ainda pode fazer isso com a extensão PowerShell Pro Tools. Além de converter scripts em EXE, a extensão PowerShell Pro Tools ajuda a empacotar scripts, inclui um designer de GUI e muito mais.

As ferramentas do PowerShell Pro requerem tanto o .NET 4.6.2 (ou posterior) Developer Pack quanto o .NET Core 1.0 ou posterior para empacotar scripts.

Você está usando o Get-LatestAppLog3.ps1 e AppLogsComplete.ps1 para esta demonstração.

Supondo que você tenha o VS Code e a extensão PowerShell Pro Tools instalados:

  1. Abra o VS Code e um script do PowerShell para converter em um EXE.

2. No canto superior direito do VS Code, clique no botão Empacotar Script como Exe, conforme mostrado abaixo.

Compiling PowerShell Script To An EXE

3. Ao criar um EXE a partir de um script pela primeira vez, o PowerShell Pro Tools criará um arquivo package.psd1 na raiz do espaço de trabalho atual.

Showing Workspace Root and PowerShell Data File (PSD1)

4. Dentro do arquivo package.psd1, o caminho exato do script a ser convertido é automaticamente preenchido para a chave Root. Defina a chave Caminho de Saída para especificar o caminho para salvar o EXE, como mostrado abaixo.

Setting up Root and Output Path

5. Ao criar um EXE a partir de um script, você notará várias mensagens de log no painel de Saída na parte inferior da tela. Se ocorrerem erros durante a compilação do script, você os verá exibidos aqui.

Logs Shown In The Output Pane

Compilando Outros Scripts no Mesmo EXE

Se você tiver scripts dependentes chamados em seu script principal, a extensão PowerShell Pro Tools pode cuidar deles também. Para fazer isso, o PowerShell Pro Tools requer que você faça referência a quaisquer scripts que deseje incluir com o EXE.

O script Get-LatestAppLog3.ps1 abaixo é o script principal a ser compilado. Dentro dele, ele executa o script AppLogsComplete.ps1. Para garantir que o PowerShell Pro Tools inclua o arquivo dependente AppLogsComplete.ps1, você deve fazer referência ao script ou trazê-lo para o escopo do script atual.

. "$PSScriptRoot\AppLogsComplete.ps1"
Using Dot-Sourcing To Call Another PS1 Inside The Main Script

Depois de ter dot-sourced quaisquer scripts dependentes, clique novamente em Package Script as Exe para começar a converter seus scripts em um arquivo executável.

O PowerGUI

PowerGUI foi um dos editores originais de scripts do PowerShell. Embora pareça ter sido esquecido há muito tempo, ainda é possível encontrar cópias na web. Por que falar de um editor de scripts do PowerShell há muito esquecido? Porque ele possui um conversor integrado de PS1 para EXE!

Embora o site do PowerGUI não exista mais, ainda é possível encontrar uma cópia em sites como o Softpedia.

Compilando Script PS1 para um EXE

Após instalar o PowerGUI, inicie-o e você verá uma página inicial. Para começar a compilar seus scripts, você pode criar um novo script ou abrir um existente na barra de ferramentas, como mostrado na captura de tela abaixo.

Create a New Script or Open an Existing One

Depois de ficar satisfeito com seu script, clique no menu Ferramentas. Em seguida, escolha Compilar Script ou pressione Ctrl+F9 no seu teclado.

Initiate Compiling Script to EXE

Agora, configure como você gostaria que o EXE fosse executado após a conversão. A janela Compilar Script, conforme mostrado abaixo, oferece diferentes opções que você pode escolher para o comportamento do EXE.

  1. Clique no botão Procurar e localize seu PS1 que deseja converter.

2. O PowerGUI suporta o Framework de Destino do Microsoft .NET Framework 3.5 ao .NET Framework 4.0.

3. Se você deseja que o EXE seja executado em segundo plano, desative a opção Mostrar janela do Console do PowerShell quando o script for executado.

4. Você também pode clicar no botão Dependências (canto inferior esquerdo) se tiver outros arquivos para incluir. Geralmente, outros scripts do PowerShell nos quais seu script depende.

5. Quando estiver satisfeito com a configuração, clique em OK para começar a converter seu PS1 para EXE.

Configuring Compiled EXE Behavior

Em uma nota lateral, você notará uma desvantagem com o PowerGUI em termos de controle sobre como deseja que o EXE seja executado. O PowerGUI não oferece muitas opções, como adicionar parâmetros.

O PowerGUI também não oferece uma opção para incorporar informações como direitos autorais, versão e descrição, ao contrário de outros geradores de PS1 para EXE. Mas se isso não incomoda tanto, então o PowerGUI é uma boa opção que você pode manter.

PowerShell Studio

Para concluir nossa lista de conversores de PS1 para EXE, vamos terminar com um dos IDEs do PowerShell mais ricos em recursos, PowerShell Studio da Sapien Technologies. Construído do zero como um IDE exclusivamente para PowerShell, seria uma injustiça com o PowerShell Studio mostrar apenas sua capacidade de converter PS1s em EXEs. Ainda assim, temos apenas uma quantidade limitada de espaço!

Assim como o PowerShell Pro Tools no Visual Studio Code, o PowerShell Studio também tem requisitos rigorosos para empacotar scripts; tais como .NET Framework 4.8, .NET 5 para PowerShell 7 e Visual Studio 2015-2019 Runtime

Supondo que você tenha o PowerShell Studio instalado, abra o PowerShell Studio e crie ou abra um script existente do PowerShell. Este tutorial usará o script Get-LatestAppLog3.ps1.

Navegando pelas Configurações

Antes de converter um script no PowerShell Studio, você deve primeiro aprender a variedade de maneiras pelas quais pode alterar o comportamento do arquivo EXE resultante.

Clique no botão Package no canto superior direito da janela e escolha Settings. Isso abrirá a janela Script Packager, onde você pode definir todas as opções disponíveis para você.

Packaging Script To An Executable File

Cada opção no Script Packager desempenha um papel importante na forma como você deseja que a saída do arquivo EXE seja. Essas opções são demonstradas nas seções a seguir com capturas de tela.

Motor de Script

A seção do Motor de Script foca na plataforma de destino e no motor de script para compilar seu arquivo executável.

Comece selecionando seu Destino. Você pode escolher entre uma versão de 32 bits ou 64 bits do Windows, ou pode escolher ambas para flexibilidade. O PowerShell Studio criará um arquivo EXE para cada plataforma que você escolher aqui.

Setting up Target Platform And PowerShell Scrip Engine

Configurações de Saída

Esta seção tem opções para configurar como o arquivo EXE resultará após a compilação.

  • Arquivo de Saída – O nome do arquivo EXE resultante.

Não inclua uma extensão de arquivo (.exe) pois será configurada automaticamente para você no campo.

  • Pasta de Saída – Onde o PowerShell Studio salvará o arquivo executável.
  • Resolver e incluir scripts externos – Certifique-se de que esta opção esteja marcada se você tiver scripts dependentes em seu script principal. Se você não habilitar isso, os scripts externos serão ignorados durante a compilação do seu arquivo executável.

Sempre garanta que quaisquer scripts dependentes estejam na mesma pasta que o script principal.

  • Assinatura – Um local onde você pode procurar por um certificado para assinar o EXE junto com a senha do certificado (se tiver uma).
Managing The Output Settings For The Executable File

Arquivos de Ícone

Um ícone ajuda a distinguir aplicativos uns dos outros, e a seção Arquivos de Ícone oferece essa opção para adicionar um ícone ao seu arquivo executável.

Para adicionar um arquivo de ícone, clique no botão Adicionar Arquivo ou simplesmente arraste e solte o arquivo de ícone na seção Arquivos de Ícone.

Add Icon Files

Restrições

Na seção de Restrições, você pode incluir ou excluir critérios para permitir a execução de arquivos EXE.

Ao marcar um Sistema Operacional nesta área, você garantirá que o arquivo EXE resultante será executado apenas nesse sistema operacional. Da mesma forma, você pode definir critérios, como a necessidade de um usuário específico estar conectado, o computador deve ter um determinado endereço MAC e muito mais.

Como mostrado abaixo, você tem controle total sobre quando o arquivo EXE resultante será executado.

Adding Security Via Execution Restrictions

Informações da Versão

Ao criar um arquivo EXE no PowerShell Studio, esse arquivo possui vários atributos de arquivo. Na seção de Informações da Versão, você pode definir como esses atributos se parecem.

Aqui, você pode configurar atributos como Número da Versão do Arquivo, Número da Versão do Produto, Direitos Autorais, e assim por diante. Todos os atributos disponíveis estão listados abaixo.

Setting File Version Information

Opções de Compilação

Por fim, você encontrará a seção de Opções de Compilação. Nesta seção, você pode adicionar comandos personalizados pré-compilação ou pós-compilação para executar. Essa opção permitirá a execução de comandos do PowerShell antes ou depois de compilar o script para um arquivo executável.

Vamos supor que você queira executar algum código logo após o PowerShell Studio concluir a criação do EXE. Para fazer isso, clique no botão Novo (Inserir) na caixa de Comandos pós-compilação. Tanto os comandos pré-compilação quanto os pós-compilação aceitam comandos do PowerShell diretamente.

Alternativamente, você pode clicar no botão Adicionar Arquivo (reticências) e selecionar outra aplicação ou script do PowerShell para executar.

Adding Pre-Build or Post-Build Custom Commands To Execute

Depois de configurar tudo, clique em OK para empacotar o script em um executável. A localização do arquivo se abrirá automaticamente para que você possa verificar o arquivo executável.

Contabilizando Dependências Externas de Scripts do PowerShell

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.

Quando um script contém uma referência a outro script, e esse script é convertido para um EXE, o caminho pode mudar. Quando isso acontece, o código do PowerShell dentro do EXE não consegue encontrar o script dependente e falha.

Talvez você tenha um script que gostaria de converter e que chama outros scripts no mesmo diretório. Quando você executa o script via console do PowerShell, ele consegue encontrar esses scripts, pois todos estão no mesmo diretório de trabalho. Quando você converte um script para um EXE, isso pode quebrar.

Se você pretende converter um arquivo PS1 para um EXE e esse script chama outros scripts no mesmo diretório, adicione o seguinte trecho de código ao topo do seu script.

O trecho de código abaixo resolve o caminho de um script externo que você está executando a partir do script principal, desde que ambos estejam no mesmo diretório.

if ($MyInvocation.MyCommand.CommandType -eq "ExternalScript")
 { $ScriptPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition }
 else
 { $ScriptPath = Split-Path -Parent -Path ([Environment]::GetCommandLineArgs()[0]) 
     if (!$ScriptPath){ $ScriptPath = "." } }

Comparação de Recursos

Se ainda não decidiu como gostaria de criar um EXE a partir de um script do PowerShell, dê uma olhada na tabela abaixo. Esta tabela oferece uma visão geral das características de cada ferramenta para ajudá-lo a decidir qual ferramenta será sua escolha para converter PS1 em EXE.

Features Comparison

Source:
https://adamtheautomator.com/ps1-to-exe/