2011-01-10 15 views
53

Quiero ejecutar scripts de PowerShell en Windows   7 como un usuario normal. Cada vez que lo intento, me sale el siguiente error:PowerShell en Windows 7: Set-ExecutionPolicy para usuarios normales

File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the 
execution of scripts is disabled on this system. Please see "get-help about_signing" for 
more details. 
At line:1 char:2 
+ . <<<< 'C:\Users\danv\Documents\WindowsPowerShell\profile.ps1' 
    + CategoryInfo   : NotSpecified: (:) [], PSSecurityException 
    + FullyQualifiedErrorId : RuntimeException 

El intento de resolver a través de Set-ExecutionPolicy Unrestricted falla:

PS C:\Users\danv> Set-ExecutionPolicy Unrestricted 
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 <<<< Unrestricted 
    + CategoryInfo   : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException 
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand 

que puede ejecutar el comando Set-ExecutionPolicy Unrestricted como administrador, pero esto no parece propagarse a no -administradores usuarios.

¿Cómo puedo ejecutar scripts correctamente como no administrador?

Respuesta

60

Si usted (o un administrador útil) ejecuta Set-ExecutionPolicy como administrador, la política se establecerá para todos los usuarios. (Sugeriría "remoteSigned" en lugar de "irrestricto" como medida de seguridad.)

Nota: En un sistema operativo de 64 bits, necesita ejecutar Set-ExecutionPolicy para PowerShell de 32 y 64 bits por separado.

+0

He intentado esto - el establecimiento de las cosas a 'Unrestricted' como administrador no parece cambiar nada de la no administrador ... –

+0

@DanVinton: Entonces algo más está sucediendo. Sugiera configurar como administrador de nuevo, luego verificando 'Get-ExecutionPolicy' tanto del administrador como de las shells normales. Es posible que la Política de grupo anule sus deseos. – Richard

+0

En la forma habitual de TI, tener a alguien (proverbialmente) mirando por encima del hombro lo ha resuelto ... ¡gracias! –

100
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). Esto es útil si no tiene control administrativo sobre la computadora.

+2

Perfecto. Esto resolvió mi problema de inmediato. Es un poco frustrante para los usuarios nuevos que PowerShell se anuncie como un lenguaje de scripting que, de forma predeterminada, no permite la creación de scripts. –

+1

"Sin restricciones"? Tenga en cuenta [las implicaciones de seguridad] (http://stackoverflow.com/questions/4037939/powershell-says-execution-of-scripts-is-disabled-on-this-system/26955050#26955050). –

0

Esto debería resolver su problema, usted debe tratar de ejecutar el siguiente a continuación:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  
Cuestiones relacionadas