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», которая рекомендуется для личного использования, можно заменить на другой уровень безопасности.
Затем подтвердите действие, чтобы изменить групповую политику на нужный уровень. Теперь ошибка не будет запрещать сценарный код.
Инженер-программист