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

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Выполнение скриптов PowerShell запрещено для данной системы

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

UncleFather » 17 сен 2021 10:18, Пт

Serg писал(а):

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

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

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

Serg » 03 сен 2021 17:49, Пт

Хорошая статья, но к сожалению, и она не смогла мне помочь... При попытке изменить конфигурацию 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

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

UncleFather » 07 мар 2014 13:04, Пт

Проблема:

При попытке выполнить скрипт 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

Вернуться к началу