Comment définir ExecutionPolicy: accès à la clé de Registre refusé

22

J'exécute Windows Server 2008 en tant qu'administrateur et j'ai essayé de définir ExecutionPolicy comme Remotesigned pour PowerShell v2 comme ceci:

Set-ExecutionPolicy RemoteSigned

Mais j'ai eu cette erreur:

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

Comment régler ceci?

atricapilla
la source

Réponses:

24

Faites un clic droit sur le raccourci Powershell et choisissez «Exécuter en tant qu'administrateur»

user25572
la source
5
Notez également que si vous disposez d'un système d'exploitation 64 bits, vous devez définir la stratégie d'exécution pour les versions 32 bits et 64 bits de PowerShell.
Joey
Vous n'avez pas besoin de l'exécuter en tant qu'administrateur, exécutez-le simplement avec -Scope CurrentUsercomme le suggère la réponse de Janus
CharlesB
12

Stephen Jennings en réponse à la même question sur StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Cela définira la stratégie d'exécution pour l'utilisateur actuel (stocké dans HKEY_CURRENT_USER) plutôt que pour la machine locale (HKEY_LOCAL_MACHINE).

Janus
la source
3
Merci. C'est la bonne réponse, tout le monde n'a pas les privilèges d'administrateur, mais cela fonctionne toujours.
Charles Clayton
4

Dans le cas où "Exécuter en tant qu'administrateur" ne fonctionne pas pour vous (pas pour moi au début) ou si vous voulez une solution permanente, j'ai trouvé un correctif en ajoutant les autorisations directement au registre Windows. Après avoir fait cela lorsque j'ai appelé get-ExecutionPolicy, il n'est plus revenu restreint.

C'est l'équivalent de set-ExecutionPolicy RemoteSigned, avec cela fonctionne réellement.

A écrit à ce sujet ici: http://kyleclegg.com/powershell/

J'espère que cela t'aides.

Kyle
la source
0

J'ai trouvé que la seule solution à cette erreur qui fonctionnait pour moi était d'exécuter regedt32 et d'explorer la clé, puis de modifier les autorisations pour les utilisateurs de lire en contrôle total. Les autorisations locales sur le serveur ont priorité sur les droits d'administrateur de domaine.

Mark Shelton
la source
Pas vraiment une bonne réponse, étant donné les deux autres réponses déjà présentes ...
HopelessN00b