Невозможно установить Powershell ExecutionPolicy для CurrentUser

11

Вот пример команд, которые я выполняю:

PS C:\> Get-ExecutionPolicy -List 

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted


PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

Я хочу установить CurrentUserдля Unrestricted, но я не могу этого сделать. Я проверил наличие групповых политик, как указано в этом документе MSDN , но не нашел ничего настроенного.

Любая подсказка относительно того, как я могу установить это?

CamronBute
источник
Я не могу воспроизвести это. Он работает так, как задумано на моей машине. Вы получаете какие-либо ошибки?
Бриантист
@briantist Это ошибка Windows 10.
CamronBute

Ответы:

11

Как и все остальные, это похоже на ошибку в предварительной сборке Windows 10. Я запустил ее, просто указав параметр -Force.

Настройка для локальной машины:

Set-ExecutionPolicy RemoteSigned -Force

Настройка для текущего пользователя:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

ddcruver
источник
3

Это кажется ошибкой в ​​Windows 10. Мне пришлось создать ключ HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellи создать строковое значение в этом ключе, которое вызывается ExecutionPolicyс данными, Unrestrictedпрежде чем он заработает. Даже тогда я не могу изменить его без изменения реестра.

CamronBute
источник
2

У меня была более общая проблема политики powershell, чем у OP, но комбинация ответов, найденных здесь и в других местах, оказалась необходимой для правильного обновления политик моей Win10 Anniversary Edition:

1) Убедитесь, что эта запись реестра существует и установлен на самый низкий уровень безопасности, который вы хотите разрешить: HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) Убедитесь, что эта запись реестра существует и установлен на самый низкий уровень безопасности, который вы хотите разрешить: HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) Обновите групповую политику с помощью запустить gpedit.mscи перейдите к Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
Select Turn on Script Execution, затем Edit policy settingс помощью Enabledи в поле под ним, которое говорит Execution Policy, установите его наAllow All Scripts

Сделав все это, вы можете использовать ответ ddcruver, принудительно обновляя свои политики в зависимости от того, что вы хотите. Если вы установите для своих политик значение Unrestricted, я бы посоветовал установить все параметры, которые заполняются, Get-ExecutionPolicy -Listна что-то более ограничительное, например RemoteSigned, поскольку вредоносные сценарии PowerShell являются одной из основных причин вредоносных программ Windows на основе памяти.

kayleeFrye_onDeck
источник
1

Я не вижу ошибки в моей установке Windows 10. Я просто прошел установку с использованием VMWare Workstation 11 и собрал виртуальную машину. Я выполнил следующее без внесения каких-либо изменений до этого:

введите описание изображения здесь

Если вы хотите узнать версию Windows 10 у меня есть: 10.0.10074


источник
2
Я вижу неожиданное поведение, описанное ОП. Windows 10 Корпоративная сборка
10130.
Если это так, то вы должны отправить сообщение об ошибке через Connect или посмотреть, если оно уже есть.
0

Вы должны запустить powershell с повышенным режимом до изменения политики выполнения

аги
источник
Это не решает проблему ОП.
kayleeFrye_onDeck
0

Я обнаружил, что ключ реестра находится по адресу

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 

был установлен в RemoteSigned. Установка значения Unrestrictedсработала для меня.

Майк Моррисон
источник