2011-01-10 7 views
53

Ich möchte PowerShell-Skripte unter Windows   7 als normaler Benutzer ausführen. Jedes Mal, wenn ich versuche, erhalte ich folgende Fehlermeldung:PowerShell unter Windows 7: Set-ExecutionPolicy für normale Benutzer

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 

Der Versuch, über Set-ExecutionPolicy Unrestricted zu lösen schlägt fehl:

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 

kann ich den Set-ExecutionPolicy Unrestricted Befehl als Administrator ausführen, aber dies scheint nicht zu nicht propagieren -Administrator Benutzer.

Wie kann ich Skripts erfolgreich als Nicht-Administrator ausführen?

Antwort

60

Wenn Sie (oder ein hilfreicher Administrator) Set-ExecutionPolicy als Administrator ausführen, wird die Richtlinie für alle Benutzer festgelegt. (Ich würde als Sicherheitsmaßnahme "remoteSigned" anstatt "uneingeschränkt" vorschlagen.)

Anm .: Auf einem 64-Bit-Betriebssystem müssen Sie Set-ExecutionPolicy für 32-Bit- und 64-Bit-PowerShell separat ausführen.

+0

Ich habe versucht, diese - zu 'Nicht eingeschränkt Einstellung Dinge als Administrator nichts ändern für die nicht scheint Administrator ... –

+0

@DanVinton: Dann passiert etwas anderes. Schlage die Einstellung erneut als Admin vor und überprüfe 'Get-ExecutionPolicy' sowohl von Admin- als auch von normalen Shells. Es ist möglich, dass Gruppenrichtlinien Ihre Wünsche überschreiben. – Richard

+0

In der üblichen IT-Mode hat es jemand gelöst, der (sprichwörtlich) über die Schulter schaut ... es hat sich gelohnt ... Danke! –

100
Set-ExecutionPolicy Unrestricted -Scope CurrentUser 

Dies wird die Ausführungsrichtlinie für den aktuellen Benutzer (gespeichert in HKEY_CURRENT_USER) anstatt der lokalen Maschine (HKEY_LOCAL_MACHINE) eingestellt. Dies ist nützlich, wenn Sie keine administrative Kontrolle über den Computer haben.

+2

Perfekt. Das hat mein Problem sofort gelöst. Es ist frustrierend für neue Benutzer, dass Powershell als Skriptsprache angekündigt wird, die Scripting standardmäßig nicht erlaubt. –

+1

"Uneingeschränkt"? Beachten Sie [die Sicherheitsimplikationen] (http://stackoverflow.com/questions/4037939/powershell-says-execution-of-scripts-is-disabled-on-this-system/26955050#26955050). –

0

Dies sollte Ihr Problem lösen, sollten Sie versuchen, die folgenden unten ausgeführt wird:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  
Verwandte Themen