О запрете на выполнение скриптов PowerShell
В целях безопасности, в операционных системах Windows, по умолчанию запрещено выполнение созданных вручную файлов ps1, они же скрипты PowerShell. Так что, когда вы попытаетесь запустить какой-либо скрипт через PowerShell, то скорее всего получите следующее уведомление:
Не удается загрузить файл C:Documents and SettingsRecluseРабочий столscript.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.
В данном случае выполнению скрипта препятствует включенный запрет на выполнение неподписанных скриптов.
Отключение запрета на выполнение скриптов через PowerShell
Отключить запрет можно следующей командой PowerShell:
Set-ExecutionPolicy Unrestricted
Однако, в таком случае можно будет выполнить любой скрипт PowerShell, даже запущенный «из интернета». Поэтому, куда безопаснее будет отключить проверку подписи для скриптов PowerShell только для локальных скриптов. Делается это так:
Set-ExecutionPolicy RemoteSigned
Для того, чтобы вернуть все как было (запретить выполнение любых скриптов), нужно выполнить команду:
Set-ExecutionPolicy Restricted
Кроме этого, можно обойти запрет на выполнение скрипта просто используя параметр -ExecutionPolicy Bypass запуска для PowerShell. То есть, если Вам нужно выполнить файл script.ps1, то можно это сделать следующим образом:
PowerShell.exe -ExecutionPolicy Bypass -File script.ps1
Отключение запрета через групповые политики
Настройки PowerShell находятся в отдельном разделе групповых политик — Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows PowerShell. Конкретно, для разрешения выполнения скриптов, нужно открыть параметр «Включить выполнение сценариев«, и задать ему значение «Разрешить локальные сценарии и удаленные подписанные сценарии«.

Отключение запрета через реестр
Еще одним способом отключения ограничения на выполнение скриптов Powershell, является редактирование реестра. Параметр, который отвечает за выполнение скриптов PowerShell находится по следующему адресу: HKEY_CURRENT_USERSoftwareMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell, и носит название ExcutionPolicy. У данного параметра возможны следующие значения:
- Restricted
- AllSigned
- RemoteSigned
- Unrestricted

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