Гид по технологиям

Как включить выполнение скриптов PowerShell в Windows

7 min read Windows Обновлено 27 Apr 2026
Включить выполнение скриптов PowerShell в Windows
Включить выполнение скриптов PowerShell в Windows

Включить выполнение скриптов в PowerShell на экране Windows

PowerShell по умолчанию блокирует выполнение скриптов как мера безопасности. В этой статье подробно показаны способы проверки, включения, изменения и временного обхода политики выполнения (execution policy) в Windows, а также рекомендации по безопасной настройке и отладке.

Как проверить текущую политию выполнения

Окно PowerShell с неустановленной политикой выполнения

Понимание текущей политики выполнения необходимо перед изменением настроек. Выполните следующие шаги:

  1. Откройте Windows PowerShell с правами администратора.
  2. Введите команду и нажмите Enter:
get-executionpolicy
  1. Обычно, если вы видите ошибку при запуске .ps1-файла, команда вернёт Restricted — это означает, что выполнение скриптов отключено.
  2. Чтобы увидеть политику во всех областях (scopes), выполните:
get-executionpolicy -list

Важно: значение для каждого Scope (Process, CurrentUser, LocalMachine, MachinePolicy, UserPolicy) может отличаться — PowerShell использует приоритетную схему, и значение с более высоким приоритетом будет применено.

Как включить выполнение через «Параметры» в Windows

Вы можете переключить политику на RemoteSigned через интерфейс «Параметры» в разделе для разработчиков. Этот способ удобен, если вы не хотите работать в командной строке.

Шаги:

  1. Нажмите Win + I, чтобы открыть «Параметры».
  2. Выберите раздел “Конфиденциальность и безопасность” (Privacy & Security).
  3. Откройте раздел “Для разработчиков” (For developers). Раздел «Для разработчиков» в Windows
  4. Разверните секцию PowerShell и переключите опцию, чтобы разрешить локальное выполнение скриптов без подписи и требовать подпись только для удалённых скриптов.
  5. После изменения откройте PowerShell и проверьте:
get-executionpolicy

Ожидаемое значение для текущего пользователя теперь — RemoteSigned. Чтобы отменить этот параметр, верните переключатель в положение Off.

Важно: интерфейс «Параметры» обычно устанавливает политику для уровня CurrentUser; для установки системных/групповых политик используйте Group Policy или командлеты PowerShell.

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

Окно PowerShell с установкой RemoteSigned

Командный способ даёт больше контроля: вы можете задать политику для CurrentUser, LocalMachine или только для текущего процесса.

  1. Откройте PowerShell от имени администратора.
  2. Чтобы установить политику для всех пользователей:
Set-ExecutionPolicy RemoteSigned

Если будет запрос на подтверждение, нажмите “A” (Yes to All).

  1. Чтобы установить политику только для текущего пользователя, укажите Scope:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. Чтобы применить настройку только к текущему сеансу (временная настройка):
Set-ExecutionPolicy RemoteSigned -Scope Process
  1. Если вы не хотите видеть запрос подтверждения, добавьте флаг -Force:
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine -Force

Примечание: используйте RemoteSigned, если требуется запуск локальных скриптов без подписи и проверка подписи для скачанных из интернета.

Как отключить выполнение скриптов в PowerShell

Индикатор политики выполнения PowerShell установлен в Undefined

Чтобы вернуть состояние по умолчанию или отключить выполнение скриптов, можно установить политику в Undefined или Restricted в зависимости от нужд.

Пример для установки Undefined для всех пользователей:

Set-ExecutionPolicy Undefined

Для установки для текущего пользователя:

Set-ExecutionPolicy Undefined -Scope CurrentUser

После установки Undefined PowerShell будет действовать в соответствии с политиками, заданными на уровне системы или через Group Policy (если они присутствуют).

Понимание политик выполнения и областей

Политики управления выполнением скриптов контролируют, какие скрипты PowerShell может запускать. Короткие определения:

  • Restricted — не позволяет запускать .ps1-файлы (команды можно вводить вручную).
  • AllSigned — запускает только подписанные скрипты от доверенных издателей.
  • RemoteSigned — локальные скрипты запускаются без подписи; скачанные из сети требуют цифровой подписи.
  • Unrestricted — разрешает запуск неподписанных скриптов, но при запуске скачанных из интернета показывает предупреждение.
  • Bypass — никакие проверки не выполняются; полезно для автоматизированных сценариев, но рискованно.
  • Undefined — политика не задана явно; применяется политика по умолчанию или политика Group Policy.

Таблица: политики и краткие пояснения

ПолитикаОписание
RemoteSignedРазрешает выполнение локально созданных скриптов; требует подпись для файлов, загруженных из интернета.
AllSignedРазрешает только подписанные скрипты.
BypassПолная отмена проверок выполнения.
UnrestrictedРазрешает неподписанные скрипты с предупреждением для загруженных файлов.
RestrictedОтключено выполнение скриптов; возможен запуск отдельных команд.
UndefinedПолитика не задана явно; действует дочерняя политика.

Области (scopes) — где действует политика:

ScopeОписание
ProcessДействует только в текущей сессии PowerShell; теряется при закрытии окна.
CurrentUserДействует только для текущего пользователя.
LocalMachineДействует для всех пользователей на машине.
UserPolicyЗадаётся через групповую политику для пользователя.
MachinePolicyЗадаётся через групповую политику для компьютера.

Рекомендуемая модель принятия решений: если нужно быстро и безопасно тестировать локальные скрипты — используйте CurrentUser или Process с RemoteSigned; для централизованного контроля используйте Group Policy.

Обходные пути и когда политика не помогает

Иногда менять политику глобально неудобно. Есть безопасные и контролируемые обходы:

  • Однократный запуск скрипта без изменения системной политики:
powershell.exe -ExecutionPolicy Bypass -File "C:\путь\скрипт.ps1"
  • Запуск командной строки PowerShell с обходом политики для текущего запуска:
PowerShell -NoProfile -ExecutionPolicy Bypass
  • Вставить текст скрипта прямо в интерактивный сеанс консоли (в этом случае файл не загружается из внешнего источника).

Когда эти обходы полезны:

  • Скрипт нужен однократно и не оправдана долговременная смена политики.
  • Нет прав администратора для смены LocalMachine.

Когда обход опасен или не подходит:

  • Когда требуется централизованный контроль безопасности (сеть организации). Тогда следует использовать Group Policy и AllSigned.
  • Если скрипты поступают из ненадёжных источников — обход увеличивает риск выполнения вредоносного кода.

Проверка и отладка после изменения политики

  1. Создайте простой файл test.ps1 с содержимым:
Write-Output "PowerShell script test: OK"
  1. Запустите его в той же сессии, где устанавливали политику:
.\test.ps1

Или через полное имя:

powershell.exe -File "C:\путь\test.ps1"
  1. Если появляется ошибка “running scripts is disabled on this system”, проверьте окончательно значения:
get-executionpolicy -list
  1. Для отладки добавляйте -Verbose и -Debug в команду скрипта, а также проверяйте блоки ошибок try/catch внутри скрипта.

Рекомендации по безопасности и лучшие практики

  • По возможности не используйте Bypass и Unrestricted в долгосрочной перспективе.
  • Для критичных сред используйте AllSigned и подписывайте внутренние скрипты корпоративным сертификатом.
  • Внедрите контроль версий и код-ревью для скриптов, которые будут выполняться автоматизированно.
  • Ограничьте настройку LocalMachine только администраторам; для разработчиков применяйте CurrentUser или Process.
  • Включите аудит и журналирование запуска скриптов при помощи средств EDR/логов.

Важно: изменение политик выполнения не заменяет другие меры защиты (антивирус, контроль доступа, принцип наименьших привилегий).

Чек-листы по ролям

Администратор:

  • Проверить текущие Group Policy: MachinePolicy и UserPolicy.
  • Установить требуемую политику через Set-ExecutionPolicy или GPO.
  • Документировать изменение и уведомить команду.
  • Проверить работоспособность автоматизированных задач (Scheduled Tasks, CI/CD).

Разработчик:

  • Для локальной разработки использовать RemoteSigned в CurrentUser или Process.
  • Подписывать публичные релизы скриптов.
  • Тестировать скрипты в изолированной среде перед развёртыванием.

Обычный пользователь:

  • Не менять политики на LocalMachine без одобрения ИТ.
  • Использовать обход для однократного запуска только при необходимости и с пониманием риска.

Шпаргалка команд (cheat sheet)

get-executionpolicy
get-executionpolicy -list
Set-ExecutionPolicy RemoteSigned
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Set-ExecutionPolicy RemoteSigned -Scope Process
Set-ExecutionPolicy Undefined
powershell.exe -ExecutionPolicy Bypass -File "C:\path\script.ps1"
PowerShell -NoProfile -ExecutionPolicy Bypass

Примеры типичных ошибок и как их решить

Ошибка: “running scripts is disabled on this system”

  • Решение: проверьте get-executionpolicy; если нужно — установите RemoteSigned для CurrentUser или используйте -ExecutionPolicy Bypass для однократного запуска.

Ошибка: “cannot be loaded because running scripts is disabled on this system”

  • Решение: убедитесь, что файл не помечен как скачанный из интернета (если помечен — снимите метку в свойствах файла или подпишите файл). Альтернатива — сохранить скрипт на доверенном ресурсе и использовать подписанные версии.

Мини-методология безопасного включения выполнения скриптов

  1. Оцените потребность: нужна ли политика на уровне LocalMachine или достаточно CurrentUser/Process.
  2. Проведите тест в тестовой машине: установите RemoteSigned и запустите набор тестовых скриптов.
  3. Подпишите критичные скрипты либо примите процедуру проверки перед запуском неподписанных скриптов.
  4. Запишите изменения и мониторьте логи.
  5. При откате — используйте Set-ExecutionPolicy Undefined или Restricted и проверяйте сервисы.

Диаграмма принятия решения

flowchart TD
  A[Нужно запустить скрипт?] --> B{Требуется постоянная настройка?}
  B -- Нет --> C[Использовать -ExecutionPolicy Bypass для одностороннего запуска]
  B -- Да --> D{Уровень контроля}
  D -- Локально для пользователя --> E[Set-ExecutionPolicy RemoteSigned -Scope CurrentUser]
  D -- Для всех пользователей --> F[Set-ExecutionPolicy RemoteSigned -Scope LocalMachine]
  D -- Централизованный контроль --> G[Настроить Group Policy: AllSigned или RemoteSigned]
  C --> H[Выполнить скрипт и протестировать]
  E --> H
  F --> H
  G --> H

Критерии приёмки

  • Политика настроена на нужном Scope (проверка get-executionpolicy -list).
  • Тестовый скрипт успешно выполняется без ошибок о блокировке.
  • Документация и уведомления о внесённых изменениях доступны ответственным лицам.
  • При использовании подписи — скрипты корректно проверяются и проходят проверку издателя.

Краткое резюме

Включение выполнения скриптов в PowerShell можно сделать безопасно: используйте RemoteSigned и выбирайте правильный Scope (Process/CurrentUser/LocalMachine). Для одноразовых задач применяйте -ExecutionPolicy Bypass, а в корпоративной среде отдавайте предпочтение подписанным скриптам и настройке через Group Policy.

Важно: всегда балансируйте удобство и безопасность — не оставляйте Bypass/Unrestricted включёнными на системах в продакшне.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Сброс Windows 10/11 без потери файлов
Windows

Сброс Windows 10/11 без потери файлов

Сделать Windows 10 похожей на Windows 7, XP или 8.1
Гайды

Сделать Windows 10 похожей на Windows 7, XP или 8.1

Как вернуть найденный телефон владельцу
Безопасность

Как вернуть найденный телефон владельцу

Вызвать BSOD вручную в Windows 10
Windows

Вызвать BSOD вручную в Windows 10

Изменить экран входа в Windows 7
Windows

Изменить экран входа в Windows 7

Разблокировка и рут Nexus: полный гид
Android.

Разблокировка и рут Nexus: полный гид