Виконання сценаріїв відключено в цій системі під час запуску скрипта PowerShell – рішення

Багато рішень з проблем з компонентами Windows 11/10 або способи налаштувань системи включають виконання скриптів PowerShell. Однак при спробі запустити їх деякі користувачі-початківці стикаються з повідомленням про помилку «Неможливо завантажити файл ім’я_файлу.ps1, оскільки виконання сценаріїв відключено в цій системі».

У цій інструкції докладно про те, як виправити помилку, чим вона викликана і додаткова інформація, яка може стати в нагоді в контексті вирішення проблеми.

Політика виконання скриптів

Виконання сценаріїв відключено в цій системі під час запуску скрипта PowerShell – рішення

Причина появи повідомлення про помилку “Виконання сценаріїв відключено в цій системі” – не фактична заборона виконання будь-яких скриптів .ps1 (PowerShell), а політики їх виконання, налаштовані в Windows за умовчанням таким чином, щоб скрипти не виконувались (у деяких випадках допустимо виконання підписаних сценаріїв) – зроблено це з метою безпеки.

Як результат, в більшості випадків завантажений з Інтернету або написаний вами вручну скрипт PowerShell не буде запущений, якщо система не була попередньо налаштована на їх запуск.

У PowerShell передбачені такі варіанти політик виконання сценаріїв:

  • Restricted (Обмежений) – запуск скриптів не виконується, але можна вводити команди вручну.
  • AllSigned (Всі підписані) — можливе виконання сценаріїв із цифровим підписом довірених видавців.
  • RemoteSigned (Підписані віддалено) — потрібний підпис для сценаріїв з Інтернету, локальні (написані самостійно) виконуються без помилок.
  • Unrestricted (Без обмежень) – виконуються всі сценарії PowerShell.
  • Bypass (Пропуск) – те саме, що й у попередньому випадку, але встановлюється для однієї сесії PowerShell, коли потрібно виконати будь-який сценарій без обмежень.

Дізнатися про поточну політику виконання сценаріїв можна за допомогою команди PowerShell

Get-ExecutionPolicy

Get-ExecutionPolicy

Переглянути підпис сценарію PowerShell — за допомогою команди

Get-AuthenticodeSignature шлях_до_файлу.ps1

Get-AuthenticodeSignature

Зміна політики виконання сценаріїв

Для того, щоб ваш скрипт PowerShell був виконаний і не повідомив про помилку «виконання сценаріїв відключено в цій системі», достатньо змінити цю політику, і тим самим включити виконання сценаріїв. Увага: виконуйте лише ті сценарії, у яких впевнені: це може бути небезпечним.

Для зміни політики виконання в PowerShell, запущеному від імені Адміністратора (запуск можливий у меню з правого кліку на кнопці «Пуск», у Windows 11 — «Термінал»), виконайте:

Set-ExecutionPolicy політика_виконання

Вказавши одне з перерахованих вище значень як значення. Зазвичай оптимальним варіантом є RemoteSigned — необхідність підпису для сценаріїв, отриманих з Інтернету.

Після цього ваш скрипт з великою ймовірністю буде виконано:

RemoteSigned

Перш ніж приступити, рекомендую ознайомитися з наступним розділом, він може бути корисним.

Додаткова інформація

Деякі додаткові нюанси щодо налаштування політики виконання сценаріїв PowerShell:

  • Ви можете змінити політику не «назавжди», а лише для поточного активного сеансу PowerShell, приклад команди: Set-Execution Policy Unrestricted -Scope Process
  • Крім установки для сеансу (Process), можливі інші варіанти, повний список можна отримати за допомогою команди Get-ExecutionPolicy -List
  • Для повернення політики виконання сценаріїв до значень за промовчанням (зазвичай Restricted) використовуйте команду Set-ExecutionPolicy Default

У випадку, якщо у вас залишаються питання щодо виконання по розглянутій темі, ви можете задати їх у коментарях нижче, я спробую допомогти.

Залишити коментар