PowerShell: não é possível carregar o arquivo porque a execução do script está desabilitada no sistema

A Microsoft integrou o Windows PowerShell como o console de gerenciamento padrão em seus sistemas operacionais domésticos (Windows 10) e corporativos (Windows Server) para realizar centenas de tarefas de maneira simples, segura e totalmente funcional.

Agora, entre as tarefas que podemos executar com o Windows PowerShell está a execução de scripts que têm como tarefa automatizar tarefas rotineiras ou executar uma em particular facilitando ações administrativas e, embora seja algo realmente útil, pode acarretar certos riscos, pois um script com o conteúdo malicioso pode afetar vários componentes do sistema, como seus registros ou serviços, criando um impacto negativo em seu desempenho e operação.

Por esta razão, a Microsoft oferece várias opções que como usuários podemos selecionar para a execução dos scripts, desde habilitar todos eles independentemente de sua fonte (nada recomendado) até restringir todos eles.

1. Ver as políticas de execução do Windows PowerShell


A Microsoft nos fornece uma série de diretivas de execução do Windows PowerShell em tudo relacionado a scripts, que são.

RestritoÉ a regra padrão e com ela a execução de comandos individuais é permitida, mas nenhum script será executado, além disso, impede a execução de todos os arquivos de script, incluindo os arquivos de configuração e formato (.ps1xml), do Módulo arquivos de script (.psm1) e perfis do Windows PowerShell (.ps1).

Allsigned (apenas assinaturas)Com este tipo de diretiva podem ser executados scripts, para isso é necessário que todos os scripts e arquivos de configuração sejam assinados por um editor confiável, incluindo os scripts que são gravados no computador local, uma confirmação adicional é solicitada antes de executar scripts de editores não classificados quem são ou não confiáveis.

RemotesignedEsta diretiva permite a execução de scripts, para isso requer uma assinatura digital de um editor confiável nos scripts e arquivos de configuração que são baixados da Internet (incluindo e-mail e programas de mensagens instantâneas), não requer assinaturas digitais em scripts que tenham foram gravados no computador local, ou seja, não foram baixados da Internet, e você pode executar scripts que são baixados da Internet e não são assinados, se estiverem desbloqueados, por exemplo, usando o cmdlet Unblock-File.

IrrestritoEssa diretiva nos dá a capacidade de executar scripts não assinados, o que é um alto risco de segurança, e avisa o usuário antes de executar arquivos de configuração e scripts baixados da Internet para aumentar a segurança.

DesviarCom esta diretiva, nada é bloqueado e nem avisos nem mensagens de segurança serão exibidos. Esta diretiva de execução foi projetada para configurações nas quais um script do Windows PowerShell é integrado a um aplicativo maior ou em configurações nas quais o Windows PowerShell é a base de um programa que tem seu próprio modelo de segurança.

IndefinidoEsta opção indica que não há política de execução definida no escopo atual, portanto, se a política de execução em todos os escopos for Indefinida, a política de execução automática será Restrita, que é a política de execução padrão no Windows 10.

Para ver todas as diretivas do Windows PowerShell, podemos executar o seguinte. Agora veremos como estabelecer uma nova diretiva para executar corretamente um script no Windows PowerShell.

 Get-ExecutionPolicy -List 

PROLONGAR

2. Execute o script com o comando ExecutionPolicy Windows PowerShell

Passo 1
Para usar essa opção, temos duas opções para executar no Windows PowerShell como administradores, que são:

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned Set-ExecutionPolicy RemoteSigned -Force
Passo 2
Depois que qualquer uma dessas linhas for executada, podemos validar o resultado usando o seguinte cmdlet:
 Get-ExecutionPolicy -List

PROLONGAR

3. Execute o script no Windows PowerShell com o Editor do Registro

Passo 1
Para este método é recomendável criar uma cópia de backup dos arquivos ou criar um ponto de restauração em caso de algum tipo de falha, então usaremos as seguintes chaves e executaremos o seguinte:

+ R

 Regedit 
Passo 2
Na janela que será exibida iremos para a seguinte rota.
 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ ShellIds \ Microsoft.PowerShell 
etapa 3
Aí clicaremos com o botão direito em "Microsoft.PowerShell" e selecionaremos a opção "Novo / Valor String":

Passo 4
Este novo valor será denominado "ExecutionPolicy":

PROLONGAR

Etapa 5
Clicaremos duas vezes neste valor e no campo "Informações do valor" inseriremos "RemoteSigned":

Etapa 6
Clique em Aceitar e veremos que esta diretiva é aplicada:

PROLONGAR

4. Execute o script no Windows PowerShell com Política de Grupo

Passo 1
Esta opção está disponível para as edições Pro e Enterprise do Windows 10 e para acessá-las usaremos as seguintes teclas e executaremos o seguinte:

+ R

 gpedit.msc 
Passo 2
Ao pressionar Enter a seguinte janela será exibida e lá iremos para a seguinte rota:
  • Configuração de equipamento
  • Modelos Administrativos
  • Componentes do Windows
  • Windows PowerShell

Passo 2
Lá, selecionamos e abrimos a política chamada "Ativar a execução de scripts":

PROLONGAR

etapa 3
Na janela exibida, ativamos a caixa "Ativado" e no campo "Diretiva de execução" podemos selecionar qualquer uma das seguintes opções. Depois de definir a diretiva, clique em Aplicar e em OK para salvar as alterações.

  • Permitir apenas scripts assinados
  • Permitir scripts locais e scripts assinados remotos
  • Permitir todos os scripts

Com qualquer um desses métodos será possível fazer o uso correto dos scripts em ambientes Windows.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave