Não é possível definir o Powershell ExecutionPolicy para CurrentUser

11

Aqui está uma amostra dos comandos que estou executando:

PS C:\> Get-ExecutionPolicy -List 

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted


PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

Eu quero definir o CurrentUser para Unrestricted , mas não consigo fazer isso. Eu verifiquei as políticas de grupo em vigor, conforme descrito em este documento da MSDN , mas não encontrei nada que foi configurado.

Alguma pista de como eu posso definir isso?

    
por CamronBute 04.06.2015 / 18:29

6 respostas

3

Isso parece ser um bug no Windows 10. Eu tive que criar a chave HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\ShellIds\Microsoft.PowerShell e criar um valor de string nessa chave chamada ExecutionPolicy com os dados Unrestricted antes que funcionasse. Mesmo assim, parece que não consigo alterá-lo sem modificar o registro.

    
por 04.06.2015 / 19:35
11

Como todos os outros disseram, isso parece ser um bug na versão de visualização do Windows 10. Eu consegui que funcionasse simplesmente fornecendo o parâmetro -Force.

Configuração para o computador local:

Set-ExecutionPolicy RemoteSigned -Force

Configuração para o usuário atual:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

    
por 10.06.2015 / 03:45
1

Eu não vejo o bug na minha instalação do Windows 10. Eu simplesmente passei pela instalação usando o VMWare Workstation 11 e construí uma VM. Eu executei o seguinte sem fazer alterações antes:

Caso você queira saber a versão do Windows 10, eu tenho: 10.0.10074

    
por 05.06.2015 / 01:50
1

Eu tinha um problema de política de powershell mais generalizado do que o OP tinha, mas uma combinação de respostas encontradas aqui e em outros lugares acabou sendo necessária para que minha Win10 Anniversary Edition atualizasse corretamente suas políticas:

1) Verifique se essa entrada do Registro existe e está definida para o nível de segurança mais baixo que você deseja permitir: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Verifique se essa entrada do Registro existe e está definida para o nível de segurança mais baixo que você deseja permitir: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Atualize sua Diretiva de Grupo executando gpedit.msc e navegue para Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Selecione Turn on Script Execution e, em seguida, Editar policy setting com Enabled e na caixa abaixo que diz Execution Policy , defina como Allow All Scripts

Depois de ter feito todo esse absurdo, você pode usar a resposta do ddcruver, forçando a atualização das suas políticas, dependendo do que você quiser. Se você definir suas políticas como Irrestrito, aconselho definir todas as configurações que vão de Get-ExecutionPolicy -List a algo mais restritivo, como RemoteSigned , pois scripts maliciosos do PowerHell são uma das principais causas de malware do Windows baseado em memória. p>     

por 07.04.2017 / 22:23
0

Você deve executar o powershell com o modo elevado antes de alterar a política de execução

    
por 10.09.2016 / 02:11
0

Descobri que a chave do registro localizada em

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\ShellIds\Microsoft.PowerShell 

foi definido como RemoteSigned . Definir o valor para Unrestricted funcionou para mim.

    
por 01.10.2018 / 23:08