PowerShell: «running scripts is disabled on this system» — как включить запуск скриптов (2025)

Симптом: при запуске .ps1 получаете «running scripts is disabled on this system» или «не удаётся загрузить файл, так как выполнение сценариев отключено на этой системе». Это политика выполнения. Ниже — как запустить скрипт безопасно и без снижения защиты всей системы.

Коротко: варианты решения

  • На один раз: открыть PowerShell и поставить политику только для текущего сеанса.
  • Постоянно для вашего пользователя: включить RemoteSigned на уровне CurrentUser.
  • Скачанный файл блокируется: снять метку «из интернета» командой Unblock-File.
Нужна помощь? Подключусь удалённо, настрою ExecutionPolicy, проверю политики и запущу нужный сценарий безопасно.

1) Временный запуск — только для текущего сеанса

Команда выполняется целиком (PowerShell, можно без администратора):

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
# Далее запустите ваш скрипт, пример:
# .\script.ps1

После закрытия окна политика вернётся к прежней.

2) Постоянно для текущего пользователя (безопасный вариант)

Команда выполняется по одной строке (PowerShell, можно без администратора):

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
Get-ExecutionPolicy -List

Режим RemoteSigned позволяет запускать локальные скрипты и требует подпись только для файлов, скачанных из интернета (если не снята метка).

3) Снятие «интернет‑метки» с файла

Скачанные файлы помечаются как «Из Интернета», и PowerShell может их блокировать.

Команда выполняется по одной строке (PowerShell):

Unblock-File -Path "C:\Scripts\myscript.ps1"
# Проверка:
Get-Item "C:\Scripts\myscript.ps1" -Stream Zone.Identifier

4) PowerShell 5.1 vs PowerShell 7

Политики для Windows PowerShell 5.1 и PowerShell 7 (pwsh) могут отличаться. Проверьте их отдельно.

Команды выполняйте по одной (PowerShell):

$PSVersionTable
Get-ExecutionPolicy -List

5) Если политику «перебивает» домен/локальная политика

На рабочих ПК часто действуют политики GPO. Если строка «MachinePolicy/UserPolicy» не пустая — именно она главнее.

  1. Win+R → gpedit.msc (в Pro/Enterprise) → «Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Windows PowerShell → Включить выполнение сценариев».
  2. Выберите нужный режим (например «Разрешить только подписанные» или «Разрешить локальные сценарии»).

Безопасность

  • Не включайте Unrestricted без необходимости.
  • Проверяйте скрипты: Get-FileHash, код и источник.
  • Для единичного запуска — используйте режим Process/Bypass, чтобы не менять систему.

FAQ

После Set-ExecutionPolicy всё равно ошибка.

Смотрите «Get-ExecutionPolicy -List»: если MachinePolicy/UserPolicy заданы, их меняют только политики (GPO/локальная политика).

Скрипт запускается в PowerShell 7, но не в Windows PowerShell 5.1.

Настройте политику в обоих окружениях или запускайте из нужной версии явно (pwsh.exe vs powershell.exe).

Читайте также: