Cómo configurar ExecutionPolicy: acceso a la clave de registro denegado

22

Estoy ejecutando Windows Server 2008 como administrador e intenté configurar ExecutionPolicy como Remotesigned para PowerShell v2 de esta manera:

Set-ExecutionPolicy RemoteSigned

Pero recibí este error:

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

¿Cómo arreglar esto?

atricapilla
fuente

Respuestas:

24

Haga clic derecho en el acceso directo de Powershell y elija 'Ejecutar como administrador'

usuario25572
fuente
55
También tenga en cuenta que si tiene un sistema operativo de 64 bits, debe establecer la política de ejecución para las versiones de PowerShell de 32 y 64 bits.
Joey
No necesita ejecutarlo como administrador, solo ejecútelo -Scope CurrentUsercomo sugiere Janus answer
CharlesB
12

Stephen Jennings en respuesta a la misma pregunta en StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Esto establecerá la política de ejecución para el usuario actual (almacenado en HKEY_CURRENT_USER) en lugar de la máquina local (HKEY_LOCAL_MACHINE).

Janus
fuente
3
Gracias. Esta es la respuesta correcta, no todos tienen privilegios de administrador, pero aún así funciona.
Charles Clayton
4

En caso de que "Ejecutar como administrador" no funcione para usted (no lo hizo para mí al principio) o si desea una solución permanente, encontré una solución agregando los permisos directamente al registro de Windows. Después de hacer esto cuando llamé a get-ExecutionPolicy, ya no volvió restringido.

Es el equivalente de set-ExecutionPolicy RemoteSigned, con el que realmente funciona.

Escribió sobre esto aquí: http://kyleclegg.com/powershell/

Espero que esto ayude.

Kyle
fuente
0

Descubrí que la única solución a este error que me funcionó fue ejecutar regedt32 y profundizar en la clave y luego cambiar los permisos para los usuarios de lectura a control total. Los permisos locales en el servidor tienen prioridad sobre los derechos de administrador del dominio.

Mark Shelton
fuente
Realmente no es una buena respuesta, dadas las otras dos respuestas ya presentes ...
HopelessN00b