Executar os scripts e definir a política de execução no Windows PowerShell
Antes de modificar ou criar Windows scripts do PowerShell, você precisa saber como executá-los. Você pode estar familiarizado com a ideia de clicar duas vezes em um arquivo executável ou selecioná-lo e pressionar Enter para executá-lo, mas esse processo não funciona para scripts do Windows PowerShell.
Um problema comum com muitas linguagens de script é que os scripts são muito fáceis de serem executados acidentalmente. Os usuários podem executar acidentalmente um script, clicando duas vezes nele ou selecionando-o e pressionando Enter. Esse risco aumenta quando as extensões de arquivo estão ocultas e um anexo contém malware. Por exemplo, um arquivo anexado chamado receipt.txt.vbs é exibido como receipt.txt e os usuários o executam acidentalmente, achando que é um arquivo de texto simples. Essa configuração não é uma preocupação para os scripts do Windows PowerShell, devido às ações necessárias para executar um script.
Integração com o Explorador de Arquivos
Para tornar os scripts do Windows PowerShell mais seguros, a extensão de arquivo .ps1 está associada ao Bloco de Notas. Portanto, quando você clicar duas vezes em um arquivo .ps1 ou selecioná-lo e pressionar Enter, ele será aberto no Bloco de Notas. Essa configuração significa que os usuários não podem ser enganados para executar um script do Windows PowerShell, clicando duas vezes nele ou selecionando-o e pressionando Enter.
Ao clicar com o botão direito do mouse em um script do Windows PowerShell ou ativar o menu de contexto, você terá três opções:
- Abrir. Essa opção abre o script no Bloco de Notas.
- Executar com o PowerShell. Essa opção executa o script, mas o prompt do Windows PowerShell não permanece aberto quando o script é concluído.
- Editar. Essa opção abre o script no PowerShell ISE do Windows, se ele estiver instalado. Em sistemas em que o ISE não está presente, considere usar Visual Studio Code com a extensão do PowerShell, que é o editor recomendado no momento.
Para manter o prompt do PowerShell Windows aberto ao executar um script, execute-o em um prompt do PowerShell já aberto Windows.
Execução de scripts no prompt do PowerShell
Ao iniciar um arquivo executável em um prompt de comando, você pode inserir o nome do arquivo, executando-o no diretório atual. Por exemplo, quando o diretório atual é C:\app, você pode inserir o app.exe para executar o C:\app\app.exe. Você não pode usar esse processo para executar os scripts do Windows PowerShell, pois ele não pesquisa o diretório atual.
Para executar um script do Windows PowerShell no prompt do Windows PowerShell, você pode usar os seguintes métodos:
- Insira o caminho completo para o script; por exemplo, C:\Scripts\MyScript.ps1.
- Insira um caminho relativo para o script; por exemplo, \Scripts\MyScript.ps1.
- Referencie o diretório atual, por exemplo, .\MyScript.ps1.
A política de execução de script
Você pode controlar se Windows scripts do PowerShell podem ser executados em computadores Windows definindo a política de execução. A política de execução padrão em um computador varia de acordo com a versão do sistema operacional. Para ter certeza da configuração atual, você pode usar o cmdlet Get-ExecutionPolicy.
As opções da política de execução são:
- Restrito. Nenhum script pode ser executado.
- AllSigned. Os scripts serão executados somente se estiverem assinados digitalmente.
- RemoteSigned. Os scripts baixados serão executados somente se forem assinados digitalmente.
- Não restrito. Todos os scripts podem ser executados, mas um prompt de confirmação é exibido para scripts não assinados baixados da Internet.
- Ignorar. Todos os scripts são executados sem prompts.
Observação
Definir a política de execução de script fornece uma rede de segurança, que pode impedir que scripts não confiáveis sejam executados acidentalmente. No entanto, a política de execução sempre pode ser substituída.
Você pode definir a política de execução em um computador usando o cmdlet Set-ExecutionPolicy. No entanto, essa configuração é difícil de gerenciar em muitos computadores. Ao configurar a política de execução para muitos computadores, você pode usar a configuração de Política de Grupo Configuração do Computador\Políticas\Modelos Administrativas\Componentes do Windows\Windows PowerShell\Ativar Execução de Script, para substituir a configuração local.
Você pode substituir a política de execução para uma instância individual do Windows PowerShell. Essa configuração será útil se a política da empresa exigir que a política de execução seja definida como Restrito, mas você ainda deverá executar scripts ocasionalmente. Para substituir a política de execução, execute PowerShell.exe com o -ExecutionPolicy parâmetro.
Powershell.exe -ExecutionPolicy ByPass
Se você modificar um script baixado da Internet, ele manterá os atributos que o marcam como baixado. Para remover esse status, use o cmdlet Unblock-File .