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

Quero definir o CurrentUsercomo Unrestricted, mas não consigo fazê-lo. Eu verifiquei as políticas de grupo em vigor, conforme descrito neste documento do MSDN , mas não encontrei nada que estivesse configurado.

Alguma pista de como eu posso definir isso?

CamronBute
fonte
Eu não sou capaz de reproduzir isso. Funciona como pretendido na minha máquina. Você está recebendo algum erro?
Brianista #
@ briantist É um bug do Windows 10.
precisa saber é o seguinte

Respostas:

11

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

Configuração para a máquina local:

Set-ExecutionPolicy RemoteSigned -Force

Configuração para o usuário atual:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
fonte
3

Isso parece ser um bug no Windows 10. Eu tive que criar a chave HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShelle criar um valor de cadeia nessa chave chamada ExecutionPolicycom os dados Unrestrictedantes que funcionasse. Mesmo assim, não consigo alterá-lo sem modificar o registro.

CamronBute
fonte
2

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

1) Verifique se essa entrada do registro existe e está definida com o nível de segurança mais baixo que você deseja permitir: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Verifique se essa entrada do registro existe e se está definida com 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.msce navegue até Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Selecionar e Turn on Script Execution, em seguida, edite policy settingcom Enablede na caixa abaixo dele Execution Policy, defina-o comoAllow All Scripts

Depois de fazer tudo isso, você pode usar a resposta do ddcruver atualizando à força suas políticas, dependendo do que deseja. Se você definir suas políticas como Irrestrito, aconselho definir todas as configurações que são preenchidas Get-ExecutionPolicy -Listpara algo mais restritivo, como RemoteSignedos scripts maliciosos do PowerShell são uma das principais causas de malware do Windows baseado em memória.

kayleeFrye_onDeck
fonte
1

Não vejo o erro na minha instalação do Windows 10. Simplesmente passei pela instalação usando o VMWare Workstation 11 e construí uma VM. Executei o seguinte sem fazer alterações antes:

insira a descrição da imagem aqui

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


fonte
2
Eu vejo o comportamento inesperado descrito pelo OP. Windows 10 Enterprise build 10130.
jscott
Se for esse o caso, você deve enviar o bug através do Connect ou ver se ele já existe.
0

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

agi
fonte
Isso não resolve o problema do OP.
precisa saber é o seguinte
0

Eu descobri que a chave do registro localizada em

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

foi definido como RemoteSigned. Definir o valor para Unrestrictedfuncionou para mim.

Mike Morrison
fonte