O PowerShell tem vários modos de execução que definem o tipo de código que é permitido executar, isso é governado por uma chave de registro que reside na seção HKLM. Existem 4 modos de execução diferentes, são eles:
- Restrito: Política de execução padrão, não executa scripts, apenas comandos interativos.
- Todos assinados: Executa scripts; todos os scripts e arquivos de configuração devem ser assinados por um editor em que você confia; abre o risco de executar scripts assinados (mas maliciosos), após confirmar que você confia no editor.
- Assinado Remoto: Scripts locais são executados sem assinatura. Qualquer script baixado precisa de uma assinatura digital, até mesmo um caminho UNC.
- Irrestrito: Executa scripts; todos os scripts e arquivos de configuração baixados de aplicativos de comunicação, como o Microsoft Outlook, o Internet Explorer, o Outlook Express e o Windows Messenger, são executados após a confirmação de que você compreende o arquivo originado da Internet; nenhuma assinatura digital é necessária; abre o risco de executar scripts maliciosos não assinados baixados desses aplicativos
A diretiva de execução padrão do PowerShell é chamada restrita. Nesse modo, o PowerShell funciona apenas como um shell interativo. Ele não executa scripts e carrega apenas arquivos de configuração assinados por um editor em que você confia. Se você está recebendo o erro vermelho desagradável, a causa mais provável é que você está tentando executar um script não assinado. A coisa mais segura a fazer é alterar a Política de Execução para irrestrita, executar seu script e, em seguida, altere-o de volta para restrito.
Para alterá-lo para irrestrito, execute o seguinte comando em um PowerShell administrativo:
Set-ExecutionPolicy Unrestricted
Você será perguntado se tiver certeza de que deseja alterar a política de execução e pressionar o botão Enter novamente.
Set-ExecutionPolicy Restricted
Novamente, será perguntado se você tem certeza de que deseja alterar o modo de execução, vá em frente e aperte enter.