PowerShell: Виконання сценаріїв відключено в цій системі

В операційній системі Windows 10 є потужний інструмент для управління і виконання різних завдань - це PowerShell. Ця консоль призначена для адміністраторів, оскільки вона дозволяє їм контролювати всю операційну систему за допомогою сценаріїв (script). PowerShell використовується багатьма фоновими додатками для внесення змін в систему і це ставить під загрозу безпеку нашої ПК.

Сценарій (script) - проста програма написана в коді, який працює лінійно на нашому комп'ютері. Ми можемо створювати і виконувати власні сценарії для автоматизації завдань, або додатки можуть виконувати їх для виконання певних конфігурацій і завдань. За замовчуванням Windows 10 не забороняє ні додатків, ні нам запускати сценарії в системі, якщо вони підписані або є "своїми". Проблема виникає, коли ми запускаємо свій скрипт, і нам видає помилку " Виконання сценаріїв відключено в цій системі ". Це багаторівнева міра безпеки в PowerShell, яка запобігає запуск шкідливих сценаріїв і може завдати шкоди системі. Давайте розберемо, як змінити політики безпеки для PowerShell .

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

Якщо ви помітили помилку " Виконання сценаріїв відключено в цій системі ", то можемо перевірити конфігурацію політик для запуску сценаріїв, які налаштовані в Windows 10. Відкрийте PowerShell від імені адміністратора і:

  • Get-ExecutionPolicy -List

Ми можемо бачити кілька рівнів дозволів політик для запуску сценаріїв.

Конфігурація політик powershell

Щоб змінити політику запуску скрипта, ви повинні знати різні рівні привілеїв, які ми можемо призначити кожному з областей.

  • Restricted : заблоковано виконання будь-яких скриптів, але дозволяється робота інтерактивних команд.
  • RemoteSigned : завантажені скрипти повинні бути підписані довіреною видавцем. Локальні скрипти працюють без підпису
  • AllSigned : дозволяє виконання будь-якого підписаного скрипта, як локального, так і віддаленого (завантаженого).
  • Unrestricted : без обмежень. Ви можете запустити всі сценарії, навіть ті, які не підписані.

Коли ви знаєте умови і обмеження скриптів, то можете змінити їх. Наприклад, щоб виправити помилку " Виконання сценаріїв відключено в цій системі " досить ввести один аплет. Відкрийте PowerShell від імені адміна і:

  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser - запуск без обмеження для користувача.
  • Set-ExecutionPolicyRestricted -Scope CurrentUser повернути назад, якщо буде потрібно.

Дозволяє без обмежень виконувати сценарії для локального користувача. Ключ -Scope визначає, до чого застосовується зміна політики. Коли ви вводите " CurrentUser ", то застосовується тільки до активного користувача, а коли ви вводите " LocalMachine ", він застосовується до всієї системи.

Дозволяє без обмежень виконувати сценарії для локального користувача

Якщо вище спосіб не допоміг вам запустити свій скрипт і помилка " Виконання сценаріїв відключено в цій системі" з'являється, то можна зняти повністю обмеження. Ви повинні розуміти, що це великий ризик і ваш скрипт повинен бути безпечний на 101%. Відкрийте PowerShell від імені адміна і:

  • Set-ExecutionPolicy Unrestricted - дозволити виконання скриптів без обмежень.
  • Set-ExecutionPolicy Restricted- повернути назад за замовчуванням.

дозволити виконання скриптів без обмежень