Выполнение скриптов PowerShell запрещено для данной системы

Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев.
Отличная замена командной строке. Возможности просто безграничные.


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1504
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

Выполнение скриптов PowerShell запрещено для данной системы

Сообщение UncleFather »

Проблема:

При попытке выполнить скрипт PowerShell получаем сообщение

Не удается загрузить файл MyScript.ps1 так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений.

При запуске из командной строки:
00.JPG
При запуске скрипта из оболочки PowerShell
02.JPG

Объяснение:

По умолчанию выполнение сценариев PowerShell в системе запрещено. Так как в скриптах может находится вредоносный код, который может нанести вред системе. По соображениям безопасности скрипты PowerShell должны быть подписаны цифровой подписью (либо можно пользоваться только одиночными командами PowerShell в интерактивном режиме, все прочие сценарии запрещены), такой подход называется политика выполнения.

Решение:

Изменить политику выполнения можно в интерактивном режиме (то есть непосредственно из оболочки PowerShell) командой:

Код: Выделить всё

Set-ExecutionPolicy НовоеЗначениеПолитики

здесь «НовоеЗначениеПолитики» может принимать одно из значений:

  • RemoteSigned - все ЛОКАЛЬНЫЕ сценарии PowerShell будут выполняться без подписи, а сценарии загруженные из интернета - с цифровой подписью надежного издателя

  • Restricted - (по умолчанию) все сценарии запрещены, можно пользоваться только одиночными командами PowerShell в интерактивном режиме

  • AllSigned - все сценарии должны иметь цифровую подпись надежного издателя. Перед выполнение сценариев надежных издателей запрашивается подтверждение

  • Unrestricted - разрешается выполнение любых сценариев PowerShell без проверки цифровой подписи

Итак, в нашем случае проделываем следующее:

  1. Открываем оболочку PowerShell от имени Администратора

  2. Создаем новую (чистую) вкладку. Поскольку, если мы попытаемся выполнять даже одиночные команды из вкладок ранее сохраненных скриптов, то опять же получим ошибку «Выполнение скриптов PowerShell запрещено для данной системы»

    Создаем новую вкладку:
    03.JPG
  3. Выполняем команду

    Код: Выделить всё

    Set-ExecutionPolicy RemoteSigned
  4. Соглашаемся с условиями

    Подтверждение изменения политики выполнения скриптов:
    01.JPG

Теперь политика скриптов данного компьютера изменена на «RemoteSigned», в чем мы можем убедиться выполнив следующую команду:

Код: Выделить всё

Get-ExecutionPolicy

Поскольку на этот момент политика выполнения скриптов уже должна быть изменена, то эту команду можно уже выполнять из любой вкладки оболочки PowerShell, либо вообще из командной строки.

Результат Get-ExecutionPolicy:
04.JPG

Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение

Serg

Re: Выполнение скриптов PowerShell запрещено для данной сист

Сообщение Serg »

Хорошая статья, но к сожалению, и она не смогла мне помочь... При попытке изменить конфигурацию PowerShell, система выдала ошибку:
PS C:\Windows\System32\WindowsPowerShell\v1.0> Set-ExecutionPolicy RemoteSigned
Set-ExecutionPolicy : Отказано в доступе к разделу реестра "HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\PowerShell\1\ShellIds\Microsoft.PowerShell".
строка:1 знак:20
+ Set-ExecutionPolicy <<<< RemoteSigned
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAcce
ssException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.C
ommands.SetExecutionPolicyCommand

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1504
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

Re: Выполнение скриптов PowerShell запрещено для данной сист

Сообщение UncleFather »

Serg писал(а):

Отказано в доступе к разделу реестра "HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\PowerShell\1\ShellIds\Microsoft.PowerShell"

Запускайте оболочку от имени Администратора.


Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение

Ответить