PowerShell: Не удается загрузить файл, так как выполнение скриптов запрещено для данной системы
- Recluse
- 20.04.2018
- 34 942
- 7
- 16.10.2022
- 40
- 38
- 2
О запрете на выполнение скриптов PowerShell
В целях безопасности, в операционных системах Windows, по умолчанию запрещено выполнение созданных вручную файлов ps1, они же скрипты PowerShell. Так что, когда вы попытаетесь запустить какой-либо скрипт через PowerShell, то скорее всего получите следующее уведомление:
Не удается загрузить файл C:\Documents and Settings\Recluse\Рабочий стол\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_USER\Software\MicrosoftPowerShell\1\ShellIds\Microsoft.PowerShell
, и носит название ExcutionPolicy
. У данного параметра возможны следующие значения:
- Restricted
- AllSigned
- RemoteSigned
- Unrestricted
Добавить комментарий