Вот пример команд, которые я выполняю:
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
работал у меня.