Como definir ExecutionPolicy: acesso à chave do Registro negado

22

Estou executando o Windows Server 2008 como administrador e tentei definir ExecutionPolicy como Remotesigned para o PowerShell v2 assim:

Set-ExecutionPolicy RemoteSigned

Mas eu recebi este erro:

Set-ExecutionPolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft
.PowerShell' is denied.
At line:1 char:20
+ Set-ExecutionPolicy <<<<  RemoteSigned
    + CategoryInfo          : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
   nd

Como consertar isto?

atricapilla
fonte

Respostas:

24

Clique com o botão direito do mouse no atalho do Powershell e escolha 'Executar como Administrador'

user25572
fonte
5
Observe também que, se você possui um sistema operacional de 64 bits, precisa definir a política de execução para as versões de 32 e 64 bits do PowerShell.
Joey
Você não precisa executá-lo como administrador, basta executá-lo com -Scope CurrentUsercomo Janus resposta sugere
charlesb
12

Stephen Jennings em resposta à mesma pergunta no StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Isso definirá a política de execução para o usuário atual (armazenado em HKEY_CURRENT_USER) em vez da máquina local (HKEY_LOCAL_MACHINE).

Janus
fonte
3
Obrigado. Esta é a resposta correta, nem todos têm privilégios de administrador, mas isso ainda funciona.
Charles Clayton
4

Caso "Executar como Administrador" não funcione para você (não funcionou para mim a princípio) ou se você quiser uma solução permanente, eu encontrei uma correção adicionando as permissões diretamente ao registro do Windows. Depois de fazer isso, quando chamei get-ExecutionPolicy, ele não voltou mais restrito.

É o equivalente a set-ExecutionPolicy RemoteSigned, com ele realmente funcionando.

Escreveu sobre isso aqui: http://kyleclegg.com/powershell/

Espero que isto ajude.

Kyle
fonte
0

Eu descobri que a única solução para esse erro que funcionou para mim foi executar o regedt32 e detalhar a chave e alterar as permissões dos usuários de leitura para controle total. As permissões locais no servidor têm precedência nos direitos de administrador do domínio.

Mark Shelton
fonte
Não é realmente uma boa resposta, dada as outras duas respostas já presente ...
HopelessN00b