Как установить ExecutionPolicy: доступ к ключу реестра запрещен

22

Я использую Windows Server 2008 в качестве администратора и попытался установить для параметра ExecutionPolicy значение Remotesigned для PowerShell v2, например:

Set-ExecutionPolicy RemoteSigned

Но я получил эту ошибку:

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

Как это исправить?

atricapilla
источник

Ответы:

24

Щелкните правой кнопкой мыши ярлык Powershell и выберите «Запуск от имени администратора».

user25572
источник
5
Также обратите внимание, что если у вас 64-битная ОС, вам нужно установить политику выполнения для 32-битной и 64-битной версии PowerShell.
Джои
Вам не нужно , чтобы запустить его в качестве администратора, просто запустите его -Scope CurrentUserкак следует Janus ответ
CharlesB
12

Стивен Дженнингс в ответ на тот же вопрос о StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Это установит политику выполнения для текущего пользователя (хранится в HKEY_CURRENT_USER), а не на локальном компьютере (HKEY_LOCAL_MACHINE).

Янус
источник
3
Спасибо. Это правильный ответ, не у всех есть права администратора, но это все еще работает.
Чарльз Клейтон,
4

В случае, если «Запуск от имени администратора» не работает для вас (сначала не для меня) или если вы хотите постоянное решение, я нашел решение, добавив разрешения непосредственно в реестр Windows. После этого, когда я вызвал get-ExecutionPolicy, он больше не возвращался ограниченным.

Это эквивалент set-ExecutionPolicy RemoteSigned, с которым он действительно работает.

Написал об этом здесь: http://kyleclegg.com/powershell/

Надеюсь это поможет.

рукав моря
источник
0

Я обнаружил, что единственное решение этой ошибки, которое сработало для меня, - это запустить regedt32 и перейти к ключу, а затем изменить права доступа пользователей для чтения на полный контроль. Локальные разрешения на сервере имеют прецедент с правами администратора домена.

Марк Шелтон
источник
Не очень хороший ответ, учитывая, что два других ответа уже присутствуют ...
HopelessN00b