Как включить выполнение сценариев PowerShell?

когда я пытаюсь выполнить мой скрипт PowerShell я получаю эту ошибку:

файл C:CommonScriptshello.ps1 не удается загрузить, так как выполнение сценариев отключено в этой системе. Пожалуйста, см. "Вам-помогите в разделе about_signing" для более подробной информации.


В строке: 1 символ: 13


+ .Здравствуйте.пс1 <<<<


+ CategoryInfo : NotSpecified: (:) [], PSSecurityException


+ FullyQualifiedErrorId : RuntimeException

5
задан Pavel Chuchuva
18.04.2023 1:50 Количество просмотров материала 3346
Распечатать страницу

7 ответов

  1. запустите Windows PowerShell с параметром "Запуск от имени администратора". Только члены группы "администраторы" на компьютере могут изменять политику выполнения.

  2. разрешить запуск неподписанных скриптов введя:

    set-executionpolicy remotesigned
    

Это позволит запускать неподписанные скрипты, которые вы пишете на локальном компьютере и подписываете скрипты из интернета.

см. также Запуск Скриптов в Microsoft TechNet Библиотека.

295
отвечен Pavel Chuchuva 2023-04-19 09:38

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

Get-ExecutionPolicy

вы должны ввести следующее, Чтобы сделать его перейти в неограниченный режим:

Set-ExecutionPolicy unrestricted

надеюсь, что это помогает

60
отвечен William Hilsum 2023-04-19 11:55

на моей машине, которую я использую для разработки скриптов, я буду использовать-unrestricted, как указано выше. Однако при развертывании сценариев на компьютере конечного пользователя я просто вызову powershell с параметром-executionpolicy:

powershell.exe -noprofile -executionpolicy bypass -file .\script.ps1
50
отвечен MDMoore313 2023-04-19 14:12

мы можем получить статус текущей ExecutionPolicy командой ниже:

Get-ExecutionPolicy;

по умолчанию ограничен. Чтобы разрешить выполнение сценариев PowerShell, необходимо задать ExecutionPolicy либо как обход или свободно.

мы можем установить политику для текущего пользователя как Bypass или Unrestricted С помощью любого из ниже команды PowerShell:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force;

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force;

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

а в обход политика, ничего не блокируется и нет никаких предупреждений или запросов во время выполнения скрипта. Обход ExecutionPolicy более расслаблен, чем неограниченный.

8
отвечен Pratik Patil 2023-04-19 16:29

в зависимости от версии и конфигурации Windows, вы можете иметь следующие предупреждения, даже в Unrestricted режим:

Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this
script can potentially harm your computer. If you trust this script, use the 
Unblock-File cmdlet to allow the script to run without this warning message. 
Do you want to run?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D")

решение состоит в том, чтобы использовать политику "обхода", включенную следующей командой:

Set-ExecutionPolicy Bypass

С документация:

обход: ничего не блокируется, и нет никаких предупреждений или подсказок.

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

4
отвечен Benoit Blanchon 2023-04-19 18:46

ключ reg с:

Редактор Реестра Windows Версии 5.00

[политика реестра HKEY_LOCAL_MACHINE\SOFTWARE\корпорация Майкрософт\Windows В\в PowerShell] "EnableScripts"=значение dword:00000001 "параметра ExecutionPolicy"="обхода"

и:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell]
"EnableScripts"=dword:00000001 "ExecutionPolicy"="Unrestricted"

действительно работает.

1
отвечен Giesbert Schipper 2023-04-19 21:03

причина, по которой работает ключ reg, заключается в том, что он делает именно то, что делают команды PS. Команды записывают изменения в разделы reg. Команды гораздо быстрее и проще, чем создание раздела reg или копаться в реестре.

-2
отвечен keith 2023-04-19 23:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх