Quando você tenta executar um script PowerShell que não foi assinado pelo Trusted Publisher, você pode obter o seguinte erro de segurança.
<O arquivo PowerShell Script> não é assinado digitalmente. Você não pode rodar
este script no sistema atual. Para mais informações sobre como executar scripts e definir a política de execução, veja
sobre_Execution_Policies em http://go.microsoft.com/fwlink/?LinkID=135170.
Como resolver o erro PowerShell script não está assinado digitalmente?
Existem algumas resoluções para este problema. Você pode assinar o script PowerShell que deseja executar, alterar a política de execução, ignorar a política ou desbloquear o arquivo para que ele possa ser executado uma vez naquela sessão.
Verificar política de execução
Você pode executar Get-ExecutionPolicy cmdlet para obter sua Política de Execução.
Você também pode adicionar parâmetro -list para obter a política de execução para cada escopo.
Change Execution Policy Permanently
O método mais fácil mas não seguro de se livrar desta mensagem de erro é alterar a ExecutionPolicy usando o parâmetro Set-ExecutionPolicy cmdlet e definir a política de execução para irrestrita.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Alterar Temporariamente a Política de Execução
Para alterar temporariamente a política de execução, você pode usar Set-ExecutionPolicy cmdlet com a configuração ByPass.
Set-ExecutionPolicy -ExecutionPolicy ByPass
Below é o detalhe dos valores aceitáveis para o parâmetro -ExecutionPolicy:
- Restricted. Não carrega arquivos de configuração nem executa scripts. Restrito é a política de execução padrão.
- AllSigned. Requer que todos os scripts e arquivos de configuração sejam assinados por um editor confiável, incluindo os scripts que você escreve no computador local.
- RemoteSigned. Requer que todos os scripts e arquivos de configuração baixados da Internet sejam assinados por um editor de confiança.
- Sem restrições. Carrega todos os arquivos de configuração e executa todos os scripts. Se você executar um script não assinado que foi baixado da Internet, você será solicitado a obter permissão antes que ele seja executado.
- Bypass. Nada é bloqueado e não há avisos ou prompts.
- Undefined. Remove a política de execução atualmente atribuída do escopo atual. Este parâmetro não removerá uma política de execução que está definida no escopo da política de grupo.
O escopo padrão do comando Set-ExecutionPolicy é LocalMachine. Você também pode especificar em qual escopo a política será definida, adicionando o parâmetro -Scope. Abaixo está o detalhe dos escopos que você pode definir:
- Process: A política de execução afeta apenas o processo PowerShell atual.
- CurrentUser: A política de execução afeta apenas o usuário atual.
- LocalMachine: A política de execução afeta todos os usuários do computador.
Para remover uma política de execução de um escopo particular, defina a política de execução para esse escopo como Indefinido.