Назад | Перейти на главную страницу

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

Я запускаю 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

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

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

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

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

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

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

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

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

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

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