Как исправить «Выполнение скриптов запрещено для данной системы» в PowerShell?

Powershell — это платформа автоматизации и управления задачами, разработанная корпорацией Майкрософт. Пользователи с ее помощью могут устранять неполадки, возникающие в работе операционной системы. Однако при запуске сценарного кода в PowerShell можно столкнуться с ошибкой «выполнение скриптов запрещено для данной системы». Узнаем подробнее, чем вызвана эта ошибка и способы ее решения.

Причина ошибки

Ошибка вызвана причиной ограничения доступа. Каждый скрипт может иметь сертификат доверенного издателя. Однако, даже при его наличии выполнение может быть запрещено из-за ограничений безопасности. Дело в том, что в Windows 10 реализована политика выполнения, которая устанавливает правила для сценариев. Если установлено значение «Restricted», то запуск скриптов будет запрещен.

Добавление фрагмента кода

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

В окне командного интерпретатора, вызываемого сочетанием Win + R, наберите Powershell и совместно нажмите Shift + Ctrl + Enter для предоставления администраторских прав.

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

powershell -ExecutionPolicy ByPass -File script.ps1

Нажмите на Enter и проверьте, сохраняется ли проблема.

Изменение политики выполнения

Поскольку политика предоставляет доступ к Powershell для запуска определенного скрипта, если имеет значение Restricted, то полностью блокирует любые сценарии.

Режимы, которые можно задать для политики в зависимости от конкретной задачи:

  • Restricted: запрещает в системе запуск любых скриптов;
  • AllSigned: разрешает запускать только подписанные доверенным издателем;
  • RemoteSigned: загруженные с интернета должны быть подписаны сертификатом доверенного издателя, остальные без ограничений;
  • Unrestricted: ограничения отсутствуют.

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

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

В консоли запустите команду:

Set-ExecutionPolicy Remotesigned

Примечание: «RemoteSigned», которая рекомендуется для личного использования, можно заменить на другой уровень безопасности.

Затем подтвердите действие, чтобы изменить групповую политику на нужный уровень. Теперь ошибка не будет запрещать сценарный код.

Ссылка на основную публикацию