So legen Sie ExecutionPolicy fest: Zugriff auf Registrierungsschlüssel verweigert

22

Ich verwende Windows Server 2008 als Administrator und habe versucht, ExecutionPolicy wie folgt als Remotesigned für PowerShell v2 festzulegen:

Set-ExecutionPolicy RemoteSigned

Aber ich habe diesen Fehler bekommen:

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

Wie kann man das beheben?

Atricapilla
quelle

Antworten:

24

Klicken Sie mit der rechten Maustaste auf die PowerShell-Verknüpfung und wählen Sie "Als Administrator ausführen".

user25572
quelle
5
Beachten Sie außerdem, dass Sie bei einem 64-Bit-Betriebssystem die Ausführungsrichtlinie sowohl für die 32-Bit- als auch für die 64-Bit-Version von PowerShell festlegen müssen.
Joey
Sie müssen es nicht als Administrator ausführen, sondern nur mit der -Scope CurrentUserAntwort von Janus
CharlesB,
12

Stephen Jennings als Antwort auf die gleiche Frage auf StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Dadurch wird die Ausführungsrichtlinie für den aktuellen Benutzer (gespeichert in HKEY_CURRENT_USER) und nicht für den lokalen Computer (HKEY_LOCAL_MACHINE) festgelegt.

Janus
quelle
3
Vielen Dank. Dies ist die richtige Antwort. Nicht jeder hat Administratorrechte, aber das funktioniert immer noch.
Charles Clayton
4

Für den Fall, dass "Als Administrator ausführen" für Sie nicht funktioniert (zunächst nicht für mich) oder wenn Sie eine dauerhafte Lösung suchen, habe ich eine Korrektur gefunden, indem ich die Berechtigungen direkt zur Windows-Registrierung hinzugefügt habe. Nachdem ich dies getan habe, als ich get-ExecutionPolicy aufgerufen habe, kam es nicht mehr eingeschränkt zurück.

Es ist das Äquivalent von set-ExecutionPolicy RemoteSigned, wobei es tatsächlich funktioniert.

Schrieb hier darüber: http://kyleclegg.com/powershell/

Hoffe das hilft.

Kyle
quelle
0

Ich stellte fest, dass die einzige Lösung für diesen Fehler, die für mich funktionierte, darin bestand, regedt32 auszuführen und einen Drilldown zum Schlüssel durchzuführen und dann die Berechtigungen für Benutzer von "Lesen" auf "Vollzugriff" zu ändern. Lokale Berechtigungen auf dem Server haben Vorrang vor den Domänenadministratorrechten.

Markieren Sie Shelton
quelle
Keine wirklich gute Antwort, da die anderen beiden Antworten bereits vorliegen ...
HopelessN00b