Вот как получить максимальную отдачу от Windows PowerShell, включив политику выполнения сценариев.
iPowerShell по умолчанию позволяет запускать команды (командлеты) через консоль. Чтобы выполнить скрипт, вы можете создать блокнот с кодом скрипта, сохранить его с расширением .ps1 и выполнить через консоль PowerShell. Вы также можете напрямую вставить скрипт в консоль для выполнения.
Однако, если вы впервые запускаете скрипт через PowerShell, вы столкнетесь с ошибкой «запуск скрипта отключен». По умолчанию выполнение сценариев в PowerShell отключено в качестве меры безопасности, чтобы предотвратить запуск вредоносных сценариев в вашей системе. Здесь мы покажем вам два способа включения политики выполнения сценариев в Windows PowerShell.
Как проверить существующую политику выполнения
Вы можете использовать командлет PowerShell, чтобы получить текущую политику выполнения. Знание вашей текущей политики выполнения необходимо, чтобы знать, нужно ли вам изменение политики или нет.
Чтобы получить текущую политику выполнения для текущего пользователя:
- Откройте Windows PowerShell от имени администратора..
- Введите следующую команду в консоли PowerShell и нажмите Enter:
получать-executionpolicy
- Поскольку вы столкнулись с ошибкой при выполнении сценария, возврат, скорее всего, покажет Ограниченный как ваша текущая политика выполнения.
- Если вам нужно просмотреть политику выполнения для всех поддерживаемых областей:
получать-executionpolicy -список
Вам нужно будет изменить политику выполнения на RemoteSigned, чтобы запускать локальные скрипты без ошибки. Вы можете изменить политику выполнения в приложении «Параметры» и в PowerShell.
Как включить политику выполнения PowerShell с помощью приложения настроек
Вы можете изменить и установить для политики выполнения PowerShell значение RemoteSigned с помощью приложения «Параметры». Все, что вам нужно сделать, это настроить параметры PowerShell в разделе для разработчиков, чтобы изменить политику выполнения, чтобы разрешить выполнение сценариев PowerShell.
Чтобы изменить политику выполнения с помощью настроек:
- Нажимать Победа + я открыть Сеттинг.
- Открой Конфиденциальность и безопасность вкладку на левой панели.
- Далее нажмите на Для разработчиков.
- Нажмите, чтобы развернуть PowerShell раздел.
- Переключите переключатель на изменить политику выполнения, чтобы разрешить запуск локальных сценариев PowerShell без подписи — требуется подпись для удаленных сценариев.
- После этого откройте PowerShell, введите get политика исполнения, и нажмите Входить. Политика выполнения для текущего пользователя теперь установлена на RemoteSigned.
- Если вам нужно отключить политику выполнения, переключите переключатель PowerShell и установите его в положение Выключенный.
Как разрешить запуск скриптов в PowerShell с помощью PowerShell
Вы можете использовать Командлет PowerShell чтобы установить политику выполнения RemoteSigned. Интерфейс командной строки позволяет легко и быстро изменить политику выполнения без использования приложения «Параметры».
Кроме того, приложение «Настройки» может только включать или отключать политику выполнения RemoteSigned. Принимая во внимание, что PowerShell также позволяет вам устанавливать другие политики и области действия.
Чтобы изменить политику выполнения с помощью PowerShell:
- Откройте PowerShell от имени администратора.
- В окне PowerShell введите следующую команду и нажмите Входить:
Набор-ExecutionPolicy RemoteSigned
- При появлении запроса нажмите А для подтверждения действия. Это установит удаленно подписанный политика выполнения для всех пользователей. Если вы хотите установить политику выполнения для Текущий пользователь только используйте параметр Scope, за которым следует имя пользователя.
- Например, для установки удаленно подписанный политика выполнения для Текущий пользователь, используйте следующую команду:
Набор-ExecutionPolicy RemoteSgined -Объем Текущий пользователь
- Заменять Текущий пользователь в приведенной выше команде с другими пользователями (Scope) в соответствии с вашими требованиями.
Как удалить политику выполнения скриптов с помощью PowerShell
Если вы хотите отключить выполнение скрипта, установите для политики выполнения значение Неопределенный с помощьюe Set_ExecutionPolicy командлет. Это состояние по умолчанию, которое не позволяет PowerShell выполнять какие-либо сценарии.
Чтобы отключить выполнение скрипта с помощью PowerShell:
- Откройте PowerShell с повышенным разрешением.
- Затем введите следующую команду и нажмите Enter, чтобы отключить выполнение скрипта для всех пользователей:
Набор-ExecutionPolicy неопределенный
- Приведенная выше команда установит политику выполнения по умолчанию (не определено) для всех пользователей. Если вы хотите отключить выполнение сценария для определенной области, используйте следующую команду:
Набор-ExecutionPolicy неопределенный -Scope CurrentUser
- Приведенная выше команда отключит выполнение скрипта для Текущий пользователь.
Понимание политик выполнения и областей действия
Проще говоря, политика выполнения PowerShell — это политика, которая контролирует, как PowerShell выполняет файлы конфигурации и сценарии. Намеченная цель состоит в том, чтобы предотвратить случайный запуск пользователями вредоносных сценариев. Семь политик выполнения PowerShell: По умолчанию, Ограниченный, RemoteSigned, AllSigned, Неограниченный, Обход и Неопределенный.
В приведенной ниже таблице кратко объясняются все политики выполнения PowerShell:
Политика исполнения |
Правоприменение |
По умолчанию |
Устанавливает политику выполнения по умолчанию как Restricted для Windows Client и RemoteSigned для Windows Server. |
AllSigned |
Позволяет выполнять сценарии, подписанные издателем. |
Обход |
Неограниченное выполнение скриптов для больших приложений. |
удаленно подписанный |
Разрешает выполнение локально написанного скрипта. Требуются цифровые подписи для скриптов, загруженных из Интернета. |
Ограниченный |
Не разрешает выполнение скриптов, а только отдельные команды PowerShell. |
Неопределенный |
Задает политику выполнения Restricted для клиентов Windows и RemoteSigned для Windows Server. |
Неограниченный |
Разрешить выполнение неподписанных скриптов с предупреждением для скриптов, загруженных из Интернета. |
Область применения политики выполнения
Вы можете установить политику выполнения для определенной области в PowerShell. Пять областей политики выполнения: MachinePolicy, UserPolicy, Process, CurrentUser, и Локальная машина.
В приведенной ниже таблице кратко объясняются все области политики выполнения:
Область применения политики выполнения |
Правоприменение |
Пользовательская политика |
Настраивается групповой политикой для текущего пользователя. |
Политика машины |
Настраивается групповой политикой для всех пользователей. |
CurrenUser |
Настраивается для текущего пользователя и хранится в подразделе реестра HKEY_CURRENT_MACHINE. |
Локальная машина |
Настраивается для всех пользователей и хранится в подразделе реестра HKEY_CURRENT_MACHINE. |
Процесс |
Влияет на текущий сеанс PowerShell и автоматически удаляется при закрытии сеанса. |
Добавить или удалить политику выполнения сценариев PowerShell в Windows
Выполнение сценария в PowerShell по умолчанию отключено для клиентов Windows и настроено на RemoteSigned для сервера Windows. Однако опытные пользователи могут изменять политики выполнения для запуска локальных, подписанных и неподписанных сценариев PowerShell.
Кроме того, вы можете обойти политику выполнения PowerShell, вставив сценарий в консоль PowerShell или выполнив команду ECHO для стандартного ввода PowerShell. Это полезно, если вы хотите выполнять скрипты без изменения политики выполнения.