Veja como obter o máximo do Windows PowerShell habilitando a Diretiva de Execução de Script.
O iPowerShell, por padrão, permite executar comandos (cmdlets) por meio de seu console. Para executar um script, você pode criar um arquivo de bloco de notas com o código do script, salvá-lo com uma extensão de arquivo .ps1 e executá-lo por meio do console do PowerShell. Você também pode colar o script diretamente no console para execução.
No entanto, se for a primeira vez que executa um script por meio do PowerShell, você encontrará o erro "o script em execução está desativado". Por padrão, a execução de scripts no PowerShell é desativada como medida de segurança para evitar que scripts maliciosos sejam executados em seu sistema. Aqui, mostramos as duas maneiras de habilitar a política de execução de script no Windows PowerShell.
Como verificar sua política de execução existente
Você pode usar um cmdlet do PowerShell para obter sua política de execução atual. Conhecer sua política de execução atual é necessário para saber se você precisa ou não de uma mudança de política.
Para obter sua política de execução atual para o usuário atual:
- Abra o Windows PowerShell como administrador.
- Digite o seguinte comando no console do PowerShell e pressione Enter:
pegar- política de execução
- Como você encontrou um erro ao executar o script, o retorno provavelmente mostrará Restrito como sua política de execução atual.
- Se você precisar visualizar a política de execução para todos os escopos compatíveis:
pegar-executionpolicy -list
Você precisará alterar a política de execução para RemoteSigned para executar scripts locais sem o erro. Você pode alterar a política de execução no aplicativo Configurações e no PowerShell.
Como habilitar a política de execução do PowerShell usando o aplicativo de configurações
Você pode alterar e definir a política de execução do PowerShell para RemoteSigned usando o aplicativo Configurações. Tudo o que você precisa fazer é ajustar as configurações do PowerShell na seção de desenvolvedores para alterar a política de execução para habilitar a execução do script do PowerShell.
Para alterar a política de execução usando Configurações:
- Imprensa Vitória + eu para abrir Setcoisas.
- Abra o privacidade e segurança guia no painel esquerdo.
- A seguir, clique em Para desenvolvedores.
- Clique para expandir o PowerShell seção.
- Mude o interruptor para altere a política de execução para permitir que os scripts locais do PowerShell sejam executados sem assinatura - Requer assinatura para scripts remotos.
- Feito isso, abra o PowerShell, digite get política de execução, e pressione Digitar. A política de execução para o usuário atual agora está definida como RemoteSigned.
- Se você precisar desabilitar a política de execução, alterne a opção PowerShell e defina-a como Desligado.
Como permitir que scripts sejam executados no PowerShell usando o PowerShell
Você pode usar um cmdlet PowerShell para definir a política de execução como RemoteSigned. A interface de linha de comando facilita a alteração rápida da política de execução sem usar o aplicativo Configurações.
Além disso, o aplicativo Configurações só pode habilitar ou desabilitar a política de execução RemoteSigned. Considerando que o PowerShell permite definir outras políticas e escopos também.
Para alterar a política de execução usando o PowerShell:
- Abra o PowerShell como administrador.
- Na janela do PowerShell, digite o seguinte comando e pressione Digitar:
Definir-ExecutionPolicy RemoteSigned
- Se solicitado, pressione A para confirmar a ação. Isso definirá o RemoteAssinado política de execução para todos os usuários. Se você deseja definir a política de execução para o Usuário atual apenas, use o parâmetro Scope seguido do nome de usuário.
- Por exemplo, para definir o RemoteAssinado política de execução para Usuário atual, use o seguinte comando:
Definir-ExecutionPolicy RemoteSgined -Escopo Usuário atual
- Substituir Usuário atual no comando acima com outros usuários (Escopo) conforme sua necessidade.
Como remover a política de execução de script usando o PowerShell
Se você deseja desabilitar a execução do script, defina a política de execução como Indefinido usando oe Set_ExecutionPolicy cmdlet. Este é um estado padrão e impede que o PowerShell execute qualquer script.
Para desabilitar a execução do script usando o PowerShell:
- Abra o PowerShell com permissão elevada.
- Em seguida, digite o seguinte comando e pressione enter para desabilitar a execução do script para todos os usuários:
Definir-ExecutionPolicy indefinido
- O comando acima definirá o padrão da política de execução (indefinido) para todos os usuários. Se você deseja desabilitar a execução do script para um escopo específico, use o seguinte comando:
Definir-ExecutionPolicy indefinido -Escopo CurrentUser
- O comando acima desabilitará a execução do script para Usuário atual.
Compreensão das Políticas e Escopos de Execução
Simplificando, a política de execução do PowerShell é uma política que controla como o PowerShell executa arquivos de configuração e scripts. O objetivo pretendido é impedir que os usuários executem acidentalmente scripts maliciosos. As sete políticas de execução do PowerShell são Padrão, Restrito, RemoteSigned, AllSigned, Irrestrito, Ignorar e Indefinido.
A tabela abaixo explica resumidamente todas as políticas de execução do PowerShell:
Política de Execução |
Execução |
Padrão |
Define a política de execução padrão como Restrita no Windows Client e RemoteSigned no Windows Server. |
Todos assinados |
Permite a execução de scripts assinados pelo editor. |
Desviar |
Execução irrestrita de scripts para aplicativos maiores. |
RemoteAssinado |
Permite a execução de scripts escritos localmente. Requer assinaturas digitais para scripts baixados da Internet. |
Restrito |
Não permite a execução de script, mas apenas comandos individuais do PowerShell. |
Indefinido |
Define a política de execução como Restrita para clientes Windows e RemoteSigned para Windows Server. |
irrestrito |
Permita a execução de scripts não assinados com um aviso para os scripts baixados da Internet. |
Escopo da Política de Execução
Você pode definir a política de execução para um escopo específico no PowerShell. Os cinco escopos da política de execução são MachinePolicy, UserPolicy, Processo, CurrentUser, e Máquina local.
A tabela abaixo explica resumidamente todos os escopos da política de execução:
Escopo da Política de Execução |
Execução |
UserPolicy |
Configurado por uma política de grupo para o usuário atual. |
Política de máquina |
Configurado por uma política de grupo para todos os usuários. |
Usuário atual |
Configurado para o usuário atual e armazenado na subchave de registro HKEY_CURRENT_MACHINE. |
Máquina local |
Configurado para todos os usuários e armazenado na subchave de registro HKEY_CURRENT_MACHINE. |
Processo |
Afeta a sessão atual do PowerShell e é excluído automaticamente quando a sessão é fechada. |
Adicionar ou remover a política de execução de script do PowerShell no Windows
A execução de script no PowerShell é desabilitada por padrão para clientes Windows e definida como RemoteSigned para servidor Windows. Os usuários avançados, no entanto, podem alterar as políticas de execução para executar scripts locais, assinados e não assinados do PowerShell.
Como alternativa, você pode ignorar a política de execução do PowerShell colando o script em um console do PowerShell ou ECHO seu script na entrada padrão do PowerShell. Isso é útil se você deseja executar scripts sem alterar a política de execução.