Introdução

Para evitar que scripts PowerShell (com arquivos de extensão ".ps1") sejam executados indevidamente em seu sistema operacional, o PowerShell utiliza algumas políticas de segurança bloqueiam por padrão scripts "não assinados". Isto é uma garantia de segurança principalmente para arquivos obtidos através da internet.

Estas Políticas de Execução foram introduzidos no Windows Server 2003 SP1 e no Windows XP SP2.

O controle destas permissões é realizado pelo cmdlet Set-ExecutionPolicy, que pode alterar às preferencias de uso das Políticas de Execução.

Todas às orientações abaixo estão de acordo com a versão "Windows PowerShell 4.0".

Tipos de Permissão

Restricted

Não carrega ou executa os arquivos de configuração e scripts PowerShell. Este é o padrão da Política de Segurança (até o Windows Server 2012 R2).

AllSigned

Exige que todos os scripts e arquivos de configuração devem ser assinados por um fornecedor confiável, incluindo os scripts que você escreveu em seu computador(local).

RemoteSigned

Exige que todos os scripts e arquivos de configuração devem ser assinados por um fornecedor confiável. Se utilizar esta Política de Execução, ainda será possível executar scripts "não assinados" desde que o arquivo .ps1 seja armazenado em seu computador.

Esta é a execução padrão no Windows Server 2012 R2.

Unrestricted

Carrega e executa todos os arquivos de configuração e scripts PowerShell. Se você executar um script "não assinado" poderá ser solicitado à sua permissão antes de executar.

Bypass

Não há nenhuma restrição, bloqueio, advertências ou avisos.

Undefined

Remove a Política de Execução atual, seja ela qual for, a não ser que esta política esteja definida no escopo de uma Diretiva de Grupo.

Restrição de Segurança

Quando executamos um script "não assinado", com a restrição de Política de Execução padrão - Restricted, mesmo que criado em seu computador, PowerShell bloquei a execução disparando uma excepção como indicado na imagem abaixo:



Para atribuir uma determinada Política de Execução, basta executar o cmdlet Set-ExecutionPolicy seguido pelo nome da política adequada à sua necessidade.

Set-ExecutionPolicy RemoteSigned


Abaixo é possível ver o comando define a Política de execução para RemoteSigned:



Assim que a política é aplicada, o PoweShell dispara a necessidade de uma confirmação manual para que sua alteração seja confirmada.

 Nota
Para alterar qualquer Política de Execução para o escopo padrão (LocalMachine), clique com o botão direito no atalho para Windows PowerShell e selecione a opção "Executar como Administrador".




 

Referências

Veja Também