Найти в Дзене

Разрешить запуск PowerShell скриптов

По умолчанию запуск скриптов PowerShell может быть запрещён. Пытаюсь запустить скрипт, получаю ошибку: Не удается загрузить файл. Файл не имеет цифровой подписи. Невозможно выполнить сценарий в указанной системе. Посмотрим текущее значение политики выполнения скриптов PowerShell: Get-ExecutionPolicy Возможные варианты: У меня установлена политика AllSigned, поэтому неподписанный скрипт не запустился. Для изменения текущего значения политики запуска PowerShell скриптов используется командлет Set-ExecutionPolicy. Set-ExecutionPolicy Bypass Как видно из скриншота, политика запуска PowerShell скриптов изменилась, но... не изменилась. Такая ошибка появляется, если политики запуска PowerShell скриптов управляются групповыми политиками, например, если компьютер в домене. В этом случае нам поможет реестр. В разделе \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell Установить ExecutionPolicy=Bypass. Ещё можно запустить скрипт с явно указанной политикой: powershell.exe -noprofil

По умолчанию запуск скриптов PowerShell может быть запрещён.

Пытаюсь запустить скрипт, получаю ошибку:

Не удается загрузить файл. Файл не имеет цифровой подписи. Невозможно выполнить сценарий в указанной системе.
-2

Посмотрим текущее значение политики выполнения скриптов PowerShell:

Get-ExecutionPolicy
-3

Возможные варианты:

  • Restricted – запрещен запуск скриптов PowerShell, можно выполнять только интерактивные команды.
  • AllSigned – разрешено выполнять только скрипты с цифровой подписью от доверенного издателя.
  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PowerShell скрипты с цифровой подписью. Нельзя запускать PS1 файлы, скачанные из Интернета. В свойствах скачанного файла можно "Разблокировать" запуск скрипта.
  • Unrestricted – разрешен запуск любых PowerShell скриптов.
  • Bypass – разрешён запуск любых PowerShell скриптов. Эта политика обычно используется для автоматического запуска PS скриптов без вывода каких-либо уведомлений и не рекомендуется для постоянного использования.
  • Default – сброс настроек выполнения скриптов на стандартные.

У меня установлена политика AllSigned, поэтому неподписанный скрипт не запустился.

Для изменения текущего значения политики запуска PowerShell скриптов используется командлет Set-ExecutionPolicy.

Set-ExecutionPolicy Bypass
-4

Как видно из скриншота, политика запуска PowerShell скриптов изменилась, но... не изменилась. Такая ошибка появляется, если политики запуска PowerShell скриптов управляются групповыми политиками, например, если компьютер в домене.

В этом случае нам поможет реестр. В разделе

\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell

Установить ExecutionPolicy=Bypass.

-5

Ещё можно запустить скрипт с явно указанной политикой:

powershell.exe -noprofile -executionpolicy bypass -file c:\ps\hello.ps1

Или так:

Get-Content c:\ps\hello.ps1 | PowerShell.exe -noprofile -executionpolicy bypass

Можно установить не только политику запуска PowerShell скриптов, но и зону её действия с помощью параметра Scope.

Get-ExecutionPolicy -List
-6

Например:

Set-ExecutionPolicy -Scope MachinePolicy -ExecutionPolicy Bypass –Force

Возможные варианты:

  • LocalMachine — для всех пользователей данного компьютера. Значение хранится в реестре, в разделе HKEY_LOCAL_MACHINE.
  • CurrentUser — для текущего пользователя. Хранится в разделе реестра HKEY_CURRENT_USER.
  • Process — в текущем сеансе PowerShell. Значение хранится в переменной окружения $PSExecutionPolicyPreference и при закрытии сеанса удаляется.
  • UserPolicy — для всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе пользователя, политика применяется при входе пользователя в систему.
  • MachinePolicy — действует на всех пользователей данного компьютера. Распространяется с помощью групповых политик. Значение хранится в разделе компьютера, политика применяется при загрузке системы.

Источник:
https://internet-lab.ru/powershell_execution_policy

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.