Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Política de Execução do PowerShell

Política de Execução do PowerShell

Mar 26, 2025

As políticas de execução do PowerShell controlam as condições de execução de scripts para reduzir execuções acidentais ou inseguras. Elas variam de restritivas (Restricted, AllSigned) a permissivas (Unrestricted, Bypass) e podem ser aplicadas em múltiplos escopos, como Process, CurrentUser e LocalMachine. Embora não sejam um limite de segurança, promovem a escrita de scripts mais segura, suportam a assinatura digital e podem ser aplicadas centralmente via Group Policy para um controle organizacional consistente.

Introdução às Políticas de Execução do PowerShell

No PowerShell, as políticas de execução são um recurso de segurança projetado para controlar as condições sob as quais os scripts do PowerShell são executados em um sistema. Essas políticas não são exatamente um mecanismo de segurança, mas têm a intenção de servir ao seguinte propósito:

  • Evite a execução acidental de scripts
  • Ajude a gerenciar o risco de executar scripts de fontes desconhecidas ou não confiáveis

As políticas de execução desempenham um papel importante no aumento da segurança de scripts. Elas atuam como uma primeira linha de defesa, restringindo os tipos de scripts que podem ser executados em um sistema. Também estabelecem confiança para as fontes de scripts, como políticas como AllSigned e RemoteSigned garantem que os scripts se originem de fontes confiáveis. Isso ajuda a reduzir o erro humano, como em uma situação em que os usuários podem executar scripts baixados de anexos de e-mail ou da web sem saber. Em um contexto mais amplo, as organizações podem usar políticas de execução para impor práticas de segurança consistentes entre máquinas e usuários.

No entanto, você também deve ter em mente que:

  • As políticas de execução não são um limite de segurança. Podem ser substituídas por usuários com privilégios administrativos ou contornadas através de flags específicas do PowerShell.
  • O objetivo principal deles é prevenir a execução acidental, não impedir atores mal-intencionados com intenção deliberada.

As políticas de execução do PowerShell devem ser usadas como parte de uma estratégia de segurança mais ampla, incluindo scripts assinados, repositórios seguros e outras medidas de proteção.

Netwrix Auditor for Windows File Servers

Otimize o processo de monitoramento de novos arquivos com Netwrix Auditor for Windows File Server

Saiba mais

Compreendendo as Políticas de Execução do PowerShell

Vamos começar com o funcionamento das políticas de execução na prática. Quando você executa um script, o PowerShell verifica a política de execução.

  • Se o script atender aos requisitos, como ser assinado por um editor confiável ou ser de origem local, ele será executado.
  • Se o script não atender aos requisitos da política, o PowerShell impede sua execução e exibe uma mensagem de erro.

Principais Benefícios

Alguns benefícios-chave das políticas de execução do PowerShell são:

  • Previne a Execução Acidental de Scripts Maliciosos – Políticas de execução reduzem o risco de rodar sem querer scripts não confiáveis ou prejudiciais, especialmente aqueles baixados da internet.
  • Incentiva Práticas de Script Seguras – Políticas como AllSigned e RemoteSigned incentivam os autores e usuários de scripts a assinar scripts com certificados confiáveis, garantindo autenticidade e integridade.
  • Diferencie Scripts Locais vs. Remotos – Políticas como RemoteSigned permitem que scripts criados localmente sejam executados sem restrições, enquanto impõem controles mais rigorosos em scripts remotos ou baixados.
  • Configuração Flexível – Políticas de execução podem ser aplicadas em diferentes escopos (Process, CurrentUser, LocalMachine, MachinePolicy e UserPolicy), dando aos administradores controle sobre como e onde as políticas são aplicadas.
  • Substituições Temporárias para Flexibilidade – Substituições temporárias (por exemplo, usando -ExecutionPolicy Bypass) permitem que scripts sejam executados em cenários controlados sem modificar permanentemente as configurações de segurança do sistema.
  • Promove a Conformidade Organizacional – As políticas de execução podem ser aplicadas em toda a organização por meio de Group Policy para garantir práticas de segurança consistentes para a execução de scripts.
  • Aumenta a conscientização sobre a segurança de scripts – Ao exigir ações explícitas, como assinar scripts ou contornar políticas, as políticas de execução incentivam os usuários a pensar criticamente sobre as fontes dos scripts e sua confiabilidade.

Principais Limitações

Algumas limitações chave das políticas de execução do PowerShell são:

  • As políticas de execução não são um limite de segurança, pois não foram projetadas para prevenir ataques deliberados. Um usuário conhecedor com privilégios administrativos pode facilmente contorná-las por meio de:
  • Usando a flag -ExecutionPolicy Bypass
  • Modificando o registro do sistema
  • Executando scripts dentro de outro processo ou contornando o PowerShell completamente
  • As políticas de execução não analisam o conteúdo dos scripts. Até mesmo scripts assinados podem conter código malicioso se a chave de assinatura estiver comprometida.
  • As políticas de execução têm um escopo de proteção limitado, pois se aplicam apenas a scripts e comandos do PowerShell. Elas não controlam outros tipos de scripts (por exemplo, VBScript, Python) ou arquivos executáveis, deixando lacunas na proteção.
  • Políticas rigorosas como AllSigned podem causar atrasos se os usuários não tiverem acesso a uma infraestrutura de assinatura confiável ou estiverem frequentemente trabalhando com scripts não assinados.
  • As políticas de execução dependem da adesão dos usuários. Usuários não treinados podem contornar as políticas de execução ou desativá-las sem compreender totalmente as implicações.
  • Vários escopos de política, como MachinePolicy, UserPolicy e Process, podem criar confusão, especialmente em ambientes com configurações mistas ou sobrepostas.
  • Scripts automatizados ou pipelines CI/CD podem encontrar problemas devido a políticas restritivas, necessitando configuração adicional ou anulações temporárias de políticas.
  • As políticas de execução podem criar uma falsa sensação de segurança. Administradores e usuários podem assumir erroneamente que são um mecanismo de segurança robusto, quando na verdade são principalmente uma proteção contra a execução acidental de scripts.

A tabela a seguir resume os principais benefícios e limitações das políticas de execução do PowerShell.

Controle de Execução de Scripts

Previne a execução acidental de scripts prejudiciais

Facilmente contornado por usuários com privilégios administrativos

Validação de Fonte

Incentiva a assinatura de scripts e fontes confiáveis

Não verifica o conteúdo do script quanto a comportamentos maliciosos

Uso Organizacional

Oferece aplicação consistente por meio de Group Policy

Pode prejudicar a produtividade em ambientes com scripts não assinados

Flexibilidade

Permite configurações com escopo e substituições temporárias

Vários escopos podem ser confusos para a gestão de políticas

Escopo de Segurança

Adiciona uma camada de defesa em uma estratégia de segurança

Limitado a scripts PowerShell, deixando outras ferramentas desprotegidas

Tipos de Políticas de Execução do PowerShell

O PowerShell oferece seis tipos de políticas de execução.

Restrito

Esta é a política de execução padrão nos sistemas Windows. Ela bloqueia a execução de todos os scripts, impedindo que os administradores automatizem tarefas usando scripts. Sob esta política, apenas comandos individuais podem ser executados interativamente.

Como essa política garante restrições máximas na execução de scripts, é ideal para ambientes onde scripts não são necessários.

RemoteSigned

Esta é a política de execução padrão para servidores Windows. A política exige que scripts remotos, como aqueles baixados da internet, sejam assinados por um editor confiável. Scripts escritos no computador local não precisam ser assinados. No geral, essa política equilibra segurança e conveniência, embora possa causar inconveniência em alguns cenários.

Para executar um script não assinado baixado da internet, você precisa desbloqueá-lo, como por exemplo, usando o cmdlet Unblock-File.

AllSigned

Esta política depende de certificados confiáveis e infraestrutura de certificados. Sob ela, apenas os scripts e arquivos de configuração assinados por um editor confiável podem ser executados. Scripts não assinados ou adulterados não podem ser executados. Além disso, o usuário é solicitado a confirmar antes de executar qualquer script, mesmo que esteja assinado.

Esta política é a melhor para ambientes com forte ênfase na integridade de scripts e autenticação.

Ilimitado

Esta política permite que todos os scripts sejam executados sem restrições, embora avisos sejam exibidos para scripts remotos não assinados antes da execução. É a política de execução padrão para computadores que não são Windows e não pode ser alterada.

Como essa política aumenta o risco de execução de scripts maliciosos ou prejudiciais, ela deve ser limitada a ambientes de desenvolvimento ou teste, onde a flexibilidade é priorizada em detrimento da segurança.

Bypass

Esta política permite que scripts sejam executados livremente, sem avisos ou solicitações. Utilize esta opção em cenários de automação, pipelines CI/CD ou quando políticas de execução interferem com fluxos de trabalho legítimos. Tenha em mente que a ausência de proteção ou restrições pode multiplicar o risco de execução acidental ou maliciosa de scripts.

Indefinido

Ao usar esta opção, a política de execução para o escopo atual é removida. Se todos os escopos estiverem indefinidos, a política efetiva padrão é Restricted para clientes Windows e RemoteSigned para Windows Server. É utilizada para limpar as configurações de política de execução de um escopo.

Escopo das Políticas de Execução do PowerShell

As políticas de execução do PowerShell podem ser aplicadas em diversos escopos, que determinam como e onde a política é aplicada. Os escopos permitem que os administradores controlem o comportamento da execução de scripts em diferentes níveis, como para usuários individuais, todos os usuários em uma máquina ou uma única sessão. Os diversos escopos são discutidos a seguir.

MachinePolicy

Definido por uma Política de Grupo para todos os usuários do computador. Esta política substitui LocalMachine e CurrentUser. Para anular esta política, remova a Group Policy setting. É utilizada para a gestão centralizada das políticas de execução de scripts para todos os usuários em uma máquina.

UserPolicy

Definido por uma Política de Grupo para o usuário atual do computador. Esta política tem precedência sobre LocalMachine e CurrentUser. É utilizada para gestão centralizada de usuários individuais dentro de um ambiente de domínio. Assim como a MachinePolicy, esta política não pode ser substituída localmente.

Processo

Aplica-se apenas à sessão atual do PowerShell. A política é salva na variável de ambiente $env:PSExecutionPolicyPreference. Quando a sessão do PowerShell é encerrada, a variável e o valor são excluídos. Portanto, a política é temporária e termina quando a sessão é fechada. É útil para testes ou para substituir temporariamente a política do sistema sem alterações permanentes.

UsuárioAtual

Aplica-se apenas ao usuário atualmente logado. Esta política é armazenada no arquivo de configuração CurrentUser. É usada para definir uma política para usuários individuais sem afetar outros usuários no mesmo computador.

LocalMachine

Aplica-se a todos os usuários do computador. Esta política é armazenada no arquivo de configuração AllUsers. Este é o escopo padrão quando nenhum escopo é especificado. Use-o para políticas em toda a organização em máquinas compartilhadas ou quando vários usuários precisam da mesma política.

As políticas de execução para o usuário atual e o computador local são armazenadas nos arquivos de configuração do PowerShell. A política de execução para uma sessão específica é armazenada apenas na memória e é perdida quando a sessão é encerrada.

Precedência de Escopo

Quando várias políticas de execução são definidas em diferentes escopos, o PowerShell usa a seguinte ordem de precedência para determinar qual política é efetiva (da mais alta para a mais baixa prioridade):

  1. Política de Grupo: MachinePolicy
  2. Política de Grupo: UserPolicy
  3. Política de Execução: Processo
  4. Política de Execução: LocalMachine
  5. Política de Execução: CurrentUser

Lembre-se do seguinte:

  • As configurações de Group Policy (MachinePolicy e UserPolicy) sobrepõem as configurações locais.
  • Se nenhum escopo for especificado ao definir uma política de execução, LocalMachine é usado por padrão.
  • Se uma Política de Grupo estiver em vigor, tentativas de alterar a política com Set-ExecutionPolicy em escopos inferiores falharão.

Configurando Políticas de Execução do PowerShell

Definir uma política de execução do PowerShell determina como os scripts são executados em um sistema.

Verifique a Política de Execução Atual

Utilize o seguinte cmdlet para verificar a política de execução atual:

      Get-ExecutionPolicy
      
Image

Verificar Políticas para Todos os Escopos

Utilize o seguinte cmdlet para verificar as políticas para todos os escopos:

      Get-ExecutionPolicy -List
      
Image

Defina uma Política de Execução

Utilize o cmdlet Set-ExecutionPolicy para definir uma política de execução para o PowerShell.

Sintaxe do Comando

      Set-ExecutionPolicy <PolicyName> -Scope <Scope>
      

Exemplo 1 – Defina uma política de execução

Utilize o seguinte cmdlet para definir a política como Unrestricted.

      Set-ExecutionPolicy Unrestricted
      
Image

Pressione Y para prosseguir ou L para abortar a ação.

Exemplo 2 – Especifique o Escopo da Política de Execução

Você pode definir a política em diferentes níveis (escopos). Use o seguinte cmdlet para definir a política como RemoteSigned para a máquina local:

      Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
      

Observe o seguinte:

  • Você deve executar o PowerShell como administrador para definir políticas de execução para o escopo LocalMachine.
  • Se uma política é aplicada pelo Group Policy (MachinePolicy ou UserPolicy), ela irá sobrescrever outras configurações, e tentar alterar a política resultará em um erro.

Aplique a Política de Execução de um Computador Remoto para um Computador Local

Para aplicar uma política de execução do PowerShell de um computador remoto para um computador local, você pode usar uma combinação de remoting do PowerShell e o cmdlet Set-ExecutionPolicy. É o seguinte:

      Invoke-Command -ComputerName TargetComputer -ScriptBlock {

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force

} -Credential (Get-Credential)
      

Aqui, -ComputerName especifica o computador de destino. -ScriptBlock contém o comando a ser executado (Set-ExecutionPolicy neste caso). -Credential permite especificar credenciais se a conta atual não tiver permissões no computador de destino.

Forçar a Configuração da Política

Para ignorar solicitações durante alterações de política de execução, use o parâmetro -Force.

      Set-ExecutionPolicy RemoteSigned -Force
      

Remover uma Política de Execução

Para remover uma política de um escopo específico, defina a política como Undefined.

      Set-ExecutionPolicy Undefined -Scope CurrentUser
      

Se todos os escopos estiverem definidos como Undefined, a política padrão se torna Restricted.

Ignorar temporariamente as Políticas de Execução do PowerShell

Você pode contornar temporariamente as políticas de execução ao rodar um script no PowerShell sem alterar permanentemente a política. No entanto, contornar as políticas de execução pode expor seu sistema a riscos de segurança. Certifique-se de que os scripts que você está executando são de fontes confiáveis.

Observe também que privilégios administrativos podem ser necessários para alguns comandos.

Exemplo 1: Ignorar Política de Execução para um Único Script

Este comando ignora a política de execução para aquela invocação específica do PowerShell.

      powershell.exe -ExecutionPolicy Bypass -File "C:\Temp\Script.ps1"
      

Exemplo 2: Bypass na Sessão Atual

Você pode alterar temporariamente a política de execução pelo período da sessão atual.

      Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
      

Aqui, -Scope Process garante que a alteração seja limitada à sessão atual do PowerShell. Quando você fechar a sessão, a política de execução retornará à sua configuração original.

Exemplo 3: Executar Scripts Sem Alterar a Política

Use o parâmetro -Command para executar o script diretamente na linha de comando.

powershell.exe -ExecutionPolicy Bypass -Command “& { . ‘C:\Temp\Script.ps1’ }”

Utilize a Política de Grupo para Gerenciar a Política de Execução

The Turn on Script Execution Group Policy setting enables you to manage the execution policy of computers in your enterprise. The Group Policy setting overrides the execution policies set in PowerShell in all scopes.

  • Quando a opção Turn on Script Execution está desativada, os scripts não são executados. Isso é equivalente à política de execução Restrita.
  • Você pode habilitar Turn on Script Execution e selecionar uma política de execução.
  • Quando Turn on Script Execution não está configurado, não tem efeito. A política de execução definida no PowerShell é eficaz.

Gerencie Scripts Assinados e Não Assinados

Um script assinado é um script do PowerShell que inclui:

  • O conteúdo do script
  • Uma assinatura digital de uma autoridade certificadora (CA) confiável ou um certificado autoassinado

Isso garante que os scripts sejam de uma fonte confiável e que não tenham sido modificados após a assinatura. Scripts assinados ajudam a aumentar a segurança em ambientes que exigem controle sobre quais scripts podem ser executados.

As seguintes políticas de execução estão relacionadas a scripts assinados:

  • AllSigned – Exige que todos os scripts e arquivos de configuração sejam assinados por um editor confiável.
  • RemoteSigned – Exige que scripts baixados da internet sejam assinados por um editor confiável. Scripts locais não precisam ser assinados.

Assine um Script

Para assinar um script, você precisa de um certificado de assinatura de código.

  • Você pode obter um certificado de uma autoridade certificadora (CA) ou gerar um certificado autoassinado usando o cmdlet New-SelfSignedCertificate.
  • Use o cmdlet Set-AuthenticodeSignature para assinar o script.

Aqui está como você pode assinar o script.

      $cert = Get-Item Cert:\CurrentUser\My\CERT_THUMBPRINT
      
      Set-AuthenticodeSignature -FilePath "C:\Temp\Script.ps1" -Certificate $cert
      

Substitua CERT_THUMBPRINT pela impressão digital real do seu certificado.

Ver Status da Assinatura do Script

Para verificar se um script está assinado e o status da assinatura, use:

      Get-AuthenticodeSignature -FilePath "C:\Temp\Script.ps1"
      

Gerenciar scripts não confiáveis ou não assinados

Para gerenciar permissões para scripts sem ignorar completamente as políticas, considere o seguinte:

  • Se um script estiver marcado como ‘da internet’, desbloqueie-o.
  • Ao executar scripts assinados de um publicador pela primeira vez, pode ser necessário aprovar o certificado do publicador. Você pode adicioná-lo como confiável usando as ferramentas de gerenciamento de certificados.

Exemplo: Desbloquear um Script

Às vezes, um script pode ser bloqueado por ter sido baixado da internet. Use o cmdlet Unblock-File para desbloqueá-lo sem contornar as políticas de execução.

      Unblock-File -Path "C:\Temp\Script.ps1"
      

Gerenciar Permissões de Script

Gerenciar permissões de script no PowerShell envolve controlar quais scripts podem ser executados e por quem. Isso inclui configurar políticas de execução, aproveitar permissões de arquivo e usar práticas de assinatura de código.

Controle a execução de scripts usando políticas de execução do PowerShell

As políticas de execução restringem as condições sob as quais os scripts podem ser executados. Diferentes políticas aplicam diferentes restrições. Por exemplo, nenhum script pode ser executado sob a política Restricted.

Use Code Signing para Scripts

Assinar scripts garante que apenas scripts confiáveis possam ser executados em ambientes com políticas rigorosas.

Use as Permissões de Arquivo NTFS

Restrinja o acesso a arquivos de script modificando permissões de arquivo ou pasta. Aqui está como você pode conceder ou negar permissões.

  1. Clique com o botão direito do mouse no arquivo de script ou pasta e escolha Propriedades.
  2. Vá para a aba Segurança e clique em Editar.
  3. Adicione ou remova usuários ou grupos e atribua as permissões apropriadas (por exemplo, Ler, Escrever, Executar).
  4. Negue permissões para usuários não autorizados para prevenir execução ou modificação.

Controlar Permissões Usando Group Policy

A Política de Grupo pode impor permissões de script e políticas de execução em vários sistemas. Para configurar uma política de grupo:

  1. Abra o Group Policy Management Console (GPMC).
  2. Navegue até Configuração do Computador > Modelos Administrativos > Componentes do Windows > Windows PowerShell.
  3. Defina a política de execução desejada usando a política “Turn on Script Execution”.

Scripts Seguros de Fontes da Internet

Scripts baixados da internet são marcados como inseguros. Abra o script em um editor de texto para revisá-lo quanto à segurança antes de executá-lo.

Melhores Práticas para Definir Políticas de Execução

Configurar corretamente as políticas de execução do PowerShell é essencial para equilibrar segurança e funcionalidade. Do ponto de vista da segurança, você deve entender que as políticas de execução não são um limite de segurança robusto, mas uma ferramenta para prevenir a execução acidental de scripts. Elas devem ser usadas com outras medidas de segurança como controles de acesso, assinatura de scripts e proteção de endpoints. Em ambientes empresariais, aplique políticas consistentes através da Group Policy e eduque os usuários sobre as melhores práticas para minimizar riscos.

Abaixo estão algumas das melhores práticas para configurar políticas de execução que equilibram segurança com funcionalidade.

Use a Política de Menor Privilégio

Você deve aplicar a política de execução Restricted ou AllSigned sempre que possível para impor controles mais rigorosos. RemoteSigned é uma escolha prática para ambientes que exigem certa flexibilidade, mas ainda precisam se proteger contra ameaças externas.

Evite usar o Bypass Permanentemente

Utilize a política de execução Bypass apenas em cenários específicos de automação ou resolução de problemas. Retorne a uma política mais rigorosa assim que a tarefa estiver concluída.

Use Assinatura Digital

Assine scripts usando uma autoridade certificadora (CA) confiável para garantir integridade e autenticidade. Você também deve incentivar os desenvolvedores de scripts a assinarem seus scripts, especialmente para uso com a política AllSigned.

Implemente Monitoramento e Registro

Ative o registro de atividades do PowerShell (por exemplo, registro de blocos de script, registro de módulos e transcrição) para detectar e responder a atividades suspeitas.

Utilize o seguinte cmdlet para ativar o registro de módulo:

      Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging" -Name EnableModuleLogging -Value 1
      

Os logs podem ser visualizados no Visualizador de Eventos em Aplicativos e Logs de Serviços > Microsoft > Windows > PowerShell.

Você também pode usar ferramentas como Microsoft Defender for Endpoint ou soluções SIEM para monitorar logs.

Teste Políticas em um Ambiente Não-Produtivo

Para evitar surpresas, teste as políticas de execução em um ambiente controlado antes de implementá-las em toda a organização. Isso também garantirá que scripts legítimos e fluxos de trabalho de automação não sejam interrompidos.

Utilize Alterações de Política Condicionais

Para gerenciar fluxos de trabalho que requerem flexibilidade, modifique as políticas temporariamente usando o parâmetro -Scope Process. O cmdlet é como se segue:

      Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
      

Considere o Ambiente ao Aplicar a Política

As políticas de execução recomendadas do PowerShell variam dependendo do ambiente.

  • Ambiente de Desenvolvimento – RemoteSigned continua sendo a política recomendada. Permite flexibilidade para os desenvolvedores executarem scripts locais sem assiná-los e garante que scripts baixados da internet sejam assinados e confiáveis. Você também deve habilitar o registro de blocos de script para monitorar a execução de scripts.
  • Ambiente de Teste/Staging – Utilize a política RemoteSigned ou AllSigned. RemoteSigned é prático para testar uma mistura de scripts locais e externos com verificações básicas de integridade enquanto AllSigned impõe um controle mais rigoroso ao exigir que todos os scripts sejam assinados.
  • Ambiente de Produção – Utilize a política AllSigned ou Restricted. AllSigned garante que apenas scripts assinados por um editor confiável sejam executados. No entanto, Restricted é a opção mais segura para ambientes que não dependem de scripts PowerShell. Você também deve impor políticas através da Group Policy para garantir consistência em todos os sistemas.
  • Ambiente de Automação – Bypass é a política recomendada (apenas para tarefas específicas). Permite que as tarefas de automação sejam executadas sem interrupções, especialmente quando as políticas são geridas por outros mecanismos, como listas de permissões de aplicações e pipelines de DevOps. Você também deve proteger o ambiente de automação com controles de acesso adequados e auditorias regulares.
  • Ambientes Altamente Seguros – A política Restrita deve ser sua escolha, pois impede a execução de quaisquer scripts.

Resolução de Erros de Política de Execução

A seguir estão erros comuns relacionados às políticas de execução do PowerShell e suas soluções.

“A execução de scripts está desativada neste sistema”

Você pode receber uma mensagem de erro como:

O arquivo C:\Temp\Script.ps1 não pode ser carregado porque a execução de scripts está desativada neste sistema.

Causa: A política de execução está definida como Restrita ou Não definida, o que impede a execução de quaisquer scripts.

Solução: Verifique a política atual e altere-a temporariamente para a sessão específica. Alternativamente, você pode mudar a política para o usuário atual ou máquina:

Para alterar a política para a sessão atual, use o seguinte cmdlet:

      Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
      

Para alterar a política para o usuário ou máquina atual, use o seguinte cmdlet:

      Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
      

“Não pode ser carregado porque o script não está assinado digitalmente”

Você pode receber uma mensagem de erro como:

O arquivo C:\Temp\Script.ps1 não pode ser carregado. O arquivo não está assinado digitalmente.

Causa: A política de execução está definida como AllSigned ou RemoteSigned, o que exige que os scripts sejam assinados.

Solução: Use RemoteSigned em vez de AllSigned se confia em scripts locais. Ou pode temporariamente contornar a política.

“Acesso à chave do registro é negado”

Você pode receber uma mensagem de erro como:

Set-ExecutionPolicy: Acesso à chave do registro é negado.

Causa: Você não possui permissões suficientes para modificar a política de execução no escopo LocalMachine.

Solução: Execute o PowerShell como administrador ou configure a política para o usuário atual usando o seguinte cmdlet:

      Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
      

Conflitos de Política de Execução Entre Escopos

Escopos diferentes (MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine) possuem políticas conflitantes.

Causa: Uma política mais restritiva em um escopo superior (como MachinePolicy) sobrepõe-se a uma política mais permissiva em um escopo inferior (como LocalMachine).?

Solução: Verifique as políticas para todos os escopos usando o seguinte cmdlet:

      Get-ExecutionPolicy -List
      

Uma vez que você tenha essas informações, pode modificar a política no escopo apropriado ou executar scripts em uma sessão com uma política mais permissiva.

“Não é possível alterar a política de execução porque ela é controlada por um Objeto de Política de Grupo (GPO)”

Este problema ocorre quando a política de execução é imposta pela Group Policy, impedindo alterações locais.

Solução: Consulte o administrador do sistema para modificar a Política de Grupo. Para uma solução rápida, no entanto, você pode contornar temporariamente a política.

“Escopo da política não reconhecido”

Você pode receber uma mensagem de erro como:

Set-ExecutionPolicy: O escopo especificado não é reconhecido.

Causa: Um erro de digitação no nome do escopo.

Solução: Garanta que o escopo esteja corretamente especificado como um destes.

Comportamento Inesperado em Diferentes Versões do PowerShell

Versões mais antigas do PowerShell, como a 2.0, lidam com políticas de execução de maneira diferente ou não possuem certos recursos.

Solução: Atualize para a versão mais recente do PowerShell.

Scripts Marcados como Bloqueados

Você pode receber uma mensagem de erro como:

Não é possível carregar o arquivo. O arquivo não está assinado digitalmente ou foi baixado da internet e está bloqueado.

Causa: O script está marcado como bloqueado porque foi baixado da internet.

Solução: Desbloqueie o script usando o seguinte cmdlet:

      Unblock-File -Path C:\Temp\Script.ps1
      

Conclusão: Escolhendo a Política de Execução do PowerShell Correta

Você deve levar esses fatores em consideração ao escolher uma política de execução eficaz.

  • Identifique o ambiente antes de escolher uma política de execução, pois diferentes ambientes requerem políticas distintas. Por exemplo, para servidores de produção, AllSigned ou RemoteSigned são melhores para impor algum nível de verificação de script.
  • Você também deve avaliar seus requisitos de segurança e decidir de acordo. Por exemplo, use AllSigned se você tiver um processo robusto de assinatura de código em vigor e quiser impor um controle estrito sobre a execução de scripts. Ou use Restricted para sistemas que não devem executar scripts.
  • Considere suas necessidades de automação. Seria mais simples usar a política Bypass em ambientes onde scripts são executados automaticamente por processos confiáveis.
  • Por fim, avalie a origem dos scripts. Se os scripts forem internos e confiáveis, RemoteSigned oferece um equilíbrio entre usabilidade e segurança. E se os scripts forem uma mistura de internos e externos, considere AllSigned para uma segurança aprimorada.

FAQs

O que é a variável $env:psexecutionpolicypreference?

A variável de ambiente $env:PSExecutionPolicyPreference é usada no PowerShell para substituir temporariamente a política de execução para uma única sessão sem alterar as políticas de execução em todo o sistema ou específicas do usuário. Quando você fecha a sessão, a alteração é perdida.

Você pode usar $env:psexecutionpolicypreference das seguintes maneiras:

  • Atribua um valor a $env:PSExecutionPolicyPreference para alterar temporariamente a política de execução, conforme mostrado abaixo:

$env:PSExecutionPolicyPreference = “Bypass”

Após isso, os scripts serão executados sem restrições durante a duração da sessão.

  • Verifique o valor atual desta variável, conforme mostrado abaixo:

$env:PSExecutionPolicyPreference

  • Remova a política temporária e reverta para o comportamento padrão, conforme mostrado abaixo:

Remove-Item Env:PSExecutionPolicyPreference

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

Jonathan Blackwell

Chefe de Desenvolvimento de Software

Desde 2012, Jonathan Blackwell, um engenheiro e inovador, tem fornecido liderança em engenharia que colocou o Netwrix GroupID na vanguarda da gestão de grupos e usuários para ambientes Active Directory e Azure AD. Sua experiência em desenvolvimento, marketing e vendas permite que Jonathan compreenda totalmente o mercado de Identity Management e como os compradores pensam.