PowerShell: Не удается загрузить файл, так как выполнение скриптов запрещено для данной системы

  • 20.04.2018
  • 8 566
  • 2
  • 11.03.2020
  • 4
  • 4
  • 0
PowerShell: Не удается загрузить файл, так как выполнение скриптов запрещено для данной системы

О запрете на выполнение скриптов 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
Была ли эта статья Вам полезна?

Комментарии к статье (2)

    • азиз

    в какую строку добавить Set-ExecutionPolicy Unrestricted?

    Add-Type -Path "C:\Selenium\WebDriver.dll"
    $env:PATH += ";C:\Selenium"
    $browser = New-Object OpenQA.Selenium.IE.InternetExplorerDriver

    $browser.Navigate().GoToURL("http://192.168.1.2")
    $InputUser = $browser.FindElementById("userName")
    $InputUser.clear();
    $InputUser.SendKeys("user123")
    $PasswordUser = $browser.FindElementById("pwd")
    $PasswordUser.clear();
    $PasswordUser.SendKeys("password123")
    $LoginButton = $browser.FindElementById("loginBtn")
    $LoginButton.Click()

    Stop-Process -Name "IEDriverServer" -Force

      • Recluse

      Через скрипт это не сделать, так как выполнение скриптов запрещено в системе. Сперва нужно в любом случае разрешить выполнение скриптов Powershell в системе одним из предложенных в статье способов.

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

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.