Найти в Дзене
Сисадмин

Выполнение сценариев отключено в этой системе

Ты запускаешь свой первый .ps1-скрипт.
Сидишь, полный энтузиазма, уверенный в своих силах, а PowerShell в ответ выдает что-то вроде: "Выполнение сценариев отключено в этой системе." И ты такой: «Что? Я же админ! Я всем руковожу!» А PowerShell с каменным лицом отвечает: "Не сегодня, сынок." PowerShell — существо с непростой судьбой. Оно выросло в мире, где, наверное, половина его пользователей — сисадмины, а другая половина — люди, скачивающие “бесплатный Windows Activator”.
И чтобы не дать вторым испортить жизнь первым, да и просто, чтобы было "безопасно", Microsoft решила: “А давайте по умолчанию запретим вообще всё!” Так появился тот самый Execution Policy, настройка, которая говорит PowerShell, можно ли вообще исполнять сценарии. И да, по умолчанию там стоит режим Restricted, то есть — "никаких скриптов, даже твоих, даже если ты клялся не запускать вирусы". Теперь магия. Открой PowerShell от имени администратора (иначе PowerShell просто будет стоять на своём). Проверь, что у тебя
Оглавление

Выполнение сценариев отключено в этой системе
Выполнение сценариев отключено в этой системе

Пролог: когда PowerShell говорит «нет»

Ты запускаешь свой первый .ps1-скрипт.

Сидишь, полный энтузиазма, уверенный в своих силах, а PowerShell в ответ выдает что-то вроде:

"Выполнение сценариев отключено в этой системе."

И ты такой:

«Что? Я же админ! Я всем руковожу!»

А PowerShell с каменным лицом отвечает:

"Не сегодня, сынок."

Почему это вообще происходит

PowerShell — существо с непростой судьбой. Оно выросло в мире, где, наверное, половина его пользователей — сисадмины, а другая половина — люди, скачивающие “бесплатный Windows Activator”.

И чтобы не дать вторым испортить жизнь первым, да и просто, чтобы было "безопасно", Microsoft решила:

“А давайте по умолчанию запретим вообще всё!”

Так появился тот самый Execution Policy, настройка, которая говорит PowerShell, можно ли вообще исполнять сценарии.

И да, по умолчанию там стоит режим Restricted, то есть — "никаких скриптов, даже твоих, даже если ты клялся не запускать вирусы".

Что делать, чтобы PowerShell перестал играть в цербера

Теперь магия. Открой PowerShell от имени администратора (иначе PowerShell просто будет стоять на своём).

Проверь, что у тебя вообще за режим стоит:

Get-ExecutionPolicy

Если ты видишь Restricted, знай — PowerShell тебя просто не уважает (пока).

Чтобы всё вернуть в мирное русло, пропиши одно из заклинаний:

Set-ExecutionPolicy RemoteSigned

или, если ты совсем отчаянный:

Set-ExecutionPolicy Unrestricted

Разбираем магию по уровням

PowerShell — это как RPG-игра, только вместо орков у тебя политики безопасности.

  • Restricted — ничего нельзя. Даже Write-Host "Hello".
  • AllSigned — можно, но только если всё подписано цифровой подписью.

    (То есть если у тебя есть корпоративный PKI и куча лишнего времени.)
  • RemoteSigned — можно всё локальное, а скачанное из Интернета должно быть подписано.

    (Это нормальный режим для живых людей.)
  • Unrestricted — всё можно, но PowerShell будет жалобно пищать:

    “Ты точно уверен, что хочешь запустить этот скрипт из тьмы Интернета?”
  • Bypass — PowerShell говорит: “Мне всё равно, я просто работаю.”

    (Для людей, у которых uptime выше сна.)

Советы от выживших

1. Не ставь Unrestricted навсегда.

Это как держать дверь серверной на скотче и говорить "зато удобно заходить".

2. Для одноразового запуска можно не менять глобальные настройки:

powershell -ExecutionPolicy Bypass -File script.ps1

Так ты обманешь систему и не испортишь её моральные устои.

3. Если политика не меняется — значит ты не тот админ.

Проверь, не стоит ли ограничение через GPO (Group Policy).

Тогда тебе придётся идти к настоящему боссу —
доменному администратору, который знает страшные слова вроде “ADMX” и “схема AD”.

А если ничего не помогает

В таком случае PowerShell просто уже в фазе отрицания.

Тогда делай полный сброс:

Set-ExecutionPolicy Default

Это вернёт настройки в заводское состояние — и, возможно, мир и порядок в твою душу.