Сообщение в PowerShell «Параметр переопределяется политикой, определенной в более конкретной области»

Powershellpolicyerr

Чтобы иметь возможность запускать файлы сценариев PowerShell (PS1), потребуется изменить политику выполнения скриптов с Restricted (ограниченный) на Unrestricted (без ограничений). Для этого используется команда Set-ExecutionPolicy Value, где Value – уровень разрешения. Они могут быть разные. Например, AllSigned дает разрешение на выполнение всех скриптов с цифровой подписью доверенных издателей, а RemoteSigned – только для локальных скриптов.

Если вы изменили эту политику, после выполнения необходимых задач рекомендуется восстановить исходные настройки командой Set-ExecutionPolicy Default.

Вы выполняете эту команду и получаете сообщение:

«Оболочка Windows PowerShell успешно обновила вашу политику выполнения, но данный параметр переопределяется политикой, определенной в более конкретной области»

Текст сообщение выделен красным, но это не ошибка, а скорее важное уведомление.

Оно означает, что PowerShell принял команду, но не смог применить ее полностью, потому что есть другая политика, установленная в более конкретной области, например, для текущего пользователя или группы.

Оболочка Windows PowerShell успешно обновила вашу политику выполнения

В общем, если на более приоритетном уровне уже установлена другая политика, то ваш новый параметр будет проигнорирован.

Таких уровней пять, перечислены они в порядке приоритетности:

  • MachinePolicy – самая высокая (назначается через групповые политики для всей машины).
  • UserPolicy – назначается через групповые политики для конкретного пользователя.
  • Process – действует только в текущем окне PowerShell (временная).
  • CurrentUser – политика для текущего пользователя.
  • LocalMachine – политика по умолчанию для всех пользователей компьютера.

Чтобы узнать, какая политика перекрывает вашу настройку, нужно вывести их список командой:

Get-ExecutionPolicy -List

Как можно видеть из этого скриншота, более приоритетная политика CurrentUser имеет значение RemoteSigned, тогда как для менее приоритетной политики по умолчанию используется значение Restricted. Все остальные настройки пусты.

Get-ExecutionPolicy -List

Если вы хотите установить значение Restricted для CurrentUser или наоборот, RemoteSigned для LocalMachine, выполните такую команду:

Set-ExecutionPolicy Restricted -Scope Уровень

Set-ExecutionPolicy Restricted

Обратите внимание, что изменить политику из PowerShell, даже если консоль запущена с правами администратора, можно только для уровней Process, CurrentUser и LocalMachine.

Get-ExecutionPolicy

Настройки MachinePolicy и UserPolicy изменяются в редакторе локальных групповых политик.

Рекомендуем их не трогать, они используются только администраторами на корпоративных компьютер для установки более жестких ограничений запуска скриптов.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *