PowerShell: «running scripts is disabled on this system» — как включить запуск скриптов (2025)
Симптом: при запуске .ps1 получаете «running scripts is disabled on this system» или «не удаётся загрузить файл, так как выполнение сценариев отключено на этой системе». Это политика выполнения. Ниже — как запустить скрипт безопасно и без снижения защиты всей системы.
Коротко: варианты решения
- На один раз: открыть PowerShell и поставить политику только для текущего сеанса.
- Постоянно для вашего пользователя: включить RemoteSigned на уровне CurrentUser.
- Скачанный файл блокируется: снять метку «из интернета» командой
Unblock-File.
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» не пустая — именно она главнее.
- Win+R →
gpedit.msc(в Pro/Enterprise) → «Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Windows PowerShell → Включить выполнение сценариев». - Выберите нужный режим (например «Разрешить только подписанные» или «Разрешить локальные сценарии»).
Безопасность
- Не включайте 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).