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

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

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


Политики выполнения скриптов в PowerShell

Если вы увидели ошибку "Выполнение сценариев отключено в этой системе", то можем проверить конфигурацию политик для запуска сценариев, которые настроены в Windows 10. Откройте PowerShell от имени администратора и:
Get-ExecutionPolicy -List


Мы можем видеть несколько уровней разрешений политик для запуска сценариев.



Чтобы изменить политику запуска скрипта, вы должны знать различные уровни привилегий, которые мы можем назначить каждому из областей.
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- вернуть назад по умолчанию.

Комментарии

Популярные сообщения из этого блога

Права на папки и файлы (unix/chmod)

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Как подключить сетевой диск Windows в Linux