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

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

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

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, но не нашел ничего настроенного.

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

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

Настройка для локального компьютера:

Set-ExecutionPolicy RemoteSigned -Force

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

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

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

У меня была более общая проблема с политикой 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
Выбрать Turn on Script Execution, затем Edit policy setting с участием Enabled и в поле под ним написано Execution Policy, установите его на Allow All Scripts

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

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

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

Перед изменением политики выполнения необходимо запустить PowerShell с повышенными правами

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

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

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