Jak ustawić ExecutionPolicy: odmowa dostępu do klucza rejestru


22

Używam Windows Server 2008 jako administrator i próbowałem ustawić ExecutionPolicy jako Remotesigned dla PowerShell v2 w następujący sposób:

Set-ExecutionPolicy RemoteSigned

Ale dostałem ten błąd:

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

Jak to naprawić?

Odpowiedzi:


24

Kliknij prawym przyciskiem myszy skrót PowerShell i wybierz „Uruchom jako administrator”


5
Należy również pamiętać, że jeśli masz 64-bitowy system operacyjny, musisz ustawić zasady wykonywania zarówno dla 32-bitowej, jak i 64-bitowej wersji programu PowerShell.
Joey

Nie musisz uruchamiać go jako administrator, po prostu uruchom go, -Scope CurrentUserjak sugeruje odpowiedź Janusa
CharlesB

12

Stephen Jennings w odpowiedzi na to samo pytanie na StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Spowoduje to ustawienie zasad wykonywania dla bieżącego użytkownika (przechowywanego w HKEY_CURRENT_USER) zamiast na komputerze lokalnym (HKEY_LOCAL_MACHINE).


3
Dzięki. To poprawna odpowiedź, nie wszyscy mają uprawnienia administratora, ale to nadal działa.
Charles Clayton

4

W przypadku, gdy „Uruchom jako administrator” nie działa dla ciebie (początkowo nie dla mnie) lub jeśli chcesz stałego rozwiązania, znalazłem poprawkę, dodając uprawnienia bezpośrednio do rejestru systemu Windows. Po zrobieniu tego, gdy zadzwoniłem do get-ExecutionPolicy, nie powróciło już ograniczone.

Jest to odpowiednik set-ExecutionPolicy RemoteSigned, a faktycznie działa.

Napisałem o tym tutaj: http://kyleclegg.com/powershell/

Mam nadzieję że to pomoże.


0

Przekonałem się, że jedynym rozwiązaniem tego błędu, który zadziałał, było uruchomienie regedt32 i przejście do klucza, a następnie zmiana uprawnień użytkowników z odczytu na pełną kontrolę. Lokalne uprawnienia na serwerze mają pierwszeństwo przed prawami administratora domeny.


Niezbyt dobra odpowiedź, biorąc pod uwagę dwie pozostałe odpowiedzi już obecne ...
HopelessN00b
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.