Executar os scripts e definir a política de execução no Windows PowerShell

Concluído

Antes de começar a modificar os scripts do Windows PowerShell ou criar seus próprios, você deve saber como executar um script do Windows PowerShell. 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 dos problemas de ter muitas linguagens de script é que executar os scripts por acidente é muito fácil. Os usuários podem executar acidentalmente um script, clicando duas vezes nele ou selecionando-o e pressionando Enter. Essa ação é especialmente problemática quando a extensão de arquivo está oculta e o malware está incluído como um anexo de email. 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 ISE do Windows PowerShell.

Na maioria dos casos, convém que o prompt do Windows PowerShell permaneça aberto ao executar um script. Para fazer essa tarefa, execute o script em um prompt do Windows PowerShell que já está aberto.

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 os scripts do Windows PowerShell podem ser executados nos computadores Windows. Você realiza essa tarefa definindo a política de execução no computador. 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 está autorizado a ser executado.
  • AllSigned. Os scripts só poderão ser executados se estiverem assinados digitalmente.
  • RemoteSigned. Os scripts baixados só poderão ser executados se estiverem assinados digitalmente.
  • Não restrito. Todos os scripts podem ser executados, mas um prompt de confirmação será exibido ao executar os scripts não assinados que forem baixados.
  • 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 parâmetro -ExecutionPolicy.

Powershell.exe -ExecutionPolicy ByPass

Se você modificou um script baixado da Internet, o script ainda terá os atributos que o identificam como arquivo baixado. Para remover esse status de um script, use o cmdlet Unblock-File.