Я запускаю 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 и перейти к ключу, а затем изменить разрешения для пользователей с чтения на полный контроль. Локальные разрешения на сервере имеют приоритет перед правами администратора домена.