Я пытаюсь установить -ExecutionPolicy (разрешить сценарии) для фактического процесса (cmd.exe)
Если записать эту команду в cmd.exe (от имени администратора):
PowerShell.exe -ExecutionPolicy Unrestricted
Вывод:
Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
Lernen Sie das neue plattformübergreifende PowerShell kennen – https://aka.ms/pscore6
Чем я поставил эту команду:
PowerShell.exe -Command "SomePowerShellScript.ps"
И все работает.
Если я попробую то же самое из пакетный файл, он останавливается после первой команды.
Причина, по которой я использую первую команду, а не спецификацию Powershell c с Set-ExecutionPolicy, описана Microsoft:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-5.1
PowerShell.exe -ExecutionPolicy Unrestricted
-> устанавливает ExecutionPolicy на cmd и powershell (скрипт может быть запущен)
PowerShell.exe -Command Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
-> устанавливает политику только для фактического powershell Процесс .exe (запуск сценария запрещен)
И для пояснения я не хочу устанавливать политику выполнения Unrestricted для LocalMachine / CurrentUser, если это возможно.
Для объяснения этой проблемы batch-file предназначен только для "ленивых" людей, чтобы напрямую запускать скрипт Powershell-Script без необходимости set ExecutionPolicy (чтобы он работал двойным щелчком).
У кого-нибудь есть идея, почему пакетный файл останавливается после первой команды (я тоже пробовал с помощью powershell.exe)?
Спасибо для ответа:).