Como resolver o erro "Execução de scripts desabilitada neste sistema" (Execution scripts is disabled on this system error)
Tags: webdev, tutorial, productivity
Published: 2024-06-09 18:14:42

Nós, como desenvolvedores, não podemos nos restringir apenas aos conhecimentos das nossas respectivas áreas na programação, precisamos também entender como o sistema operacional que você está utilizando funciona e como resolver erros com eficácia, sem tomar muito tempo.

O erro “Execution scripts is disabled on this system”, ou “A Execução de scripts desabilitada neste sistema” é um erro que é apresentado devida a **falta de permissão para executar um script no Windows**, que geralmente acontece após uma formatação do sistema ou alteração das políticas de execução da máquina.


&nbsp;

### Solução
Para iniciar o processo de solução do erro, você precisará abrir o Windows Powershell como administrador e identificar a política de execução que está habilitada na sua máquina utilizando:
```powershell
Get-ExecutionPolicy
```

O seu dispositivo deve oferecer a opção padrão do Sistema: `Default` ou `Restricted` . Independente de qual opção aparecer, você precisará alterar para a politica de execução `RemoteSigned` ou até mesmo `Unrestricted`.

A política de execução `RemoteSigned` permite a execução de scripts locais sem necessariamente precisar de uma assinatura digital, mas exige assinatura digital para scripts que são baixados da internet.

E a política de execução `Unrestricted` por sua vez, permite a execução de todos os scripts sem qualquer restrição. Em regra, é menos seguro e não é tão recomendado a menos que seja absolutamente necessária a utilização.

&nbsp;
Em resumo, prefira utilizar a política de execução `RemoteSigned` na maioria dos casos, então aplique a linha de comando:

```powershell
Set-ExecutionPolicy RemoteSigned
```

Após isso, você pode aceitar os termos de troca de política de execução e o problema será resolvido.

&nbsp;
### Mas… pera aí!

Em alguns outros casos mais específicos, pode acontecer desta troca de execução de scripts retornar um erro parecido com este:

`O Windows PowerShell atualizou sua política de execução com êxito, mas a configuração foi substituída por uma política definida em um escopo mais específico. Devido à substituição, o shell manterá sua política de execução efetiva atual de Restricted.`

Isso ocorre por diversos motivos, no meu caso, utilizando o comando `Get-ExecutionPolicy -List` , pude perceber que no meu escopo atual, a política de execução em “CurrentUser” ainda estava em `Restricted` .

![Politica de Execução "CurrentUser"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/omeji29pctdc34qmu9ra.png)

Então, precisei alterar a execução de scripts dentro do escopo “CurrentUser”.

Apliquei esta linha de comando para mudar a política no meu escopo atual (CurrentUser) em que o modo ainda estava em `Restricted` .

Observe como funciona a “anatomia” do comando:

Syntax: `“Set-ExecutionPolicy (Parâmetro -Scope para escolher o escopo) (Nome do Escopo que está restrito) (Política de Execução que você escolheu).”`

O meu resultado foi este:

```powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```

⚠️ Lembrando que todas as operações feitas neste artigo, foram utilizando o Powershell em execução no modo de Administrador, que necessariamente precisa ser executado para a troca de política funcionar.

!["Imagem ilustrativa 'Executar como administrador'"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18kvf66o00dl49516wku.png)

&nbsp;
Pronto! ✅ eu, de forma sincera, espero que tenha conseguido solucionar esta questão utilizando esse artigo. Obrigado pela sua leitura até aqui. 

&nbsp;
Conheça a Cherry Code -> https://cherrycode.com.br