Выполнить сценарий Powershell из EXE-файла... Выполнение политики RemoteSigend/ неограниченно, по-прежнему не удается
Поэтому я написал небольшую программу VB, которая запускает скрипт powershell. Я знаю, что мой ExecutionPolicy должен быть установлен на RemoteSigned или Unrestricted для выполнения сценариев на моем компьютере. Так вот что я сделал, но он продолжает говорить... cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at .. bla bla
Обычно эта проблема решается путем изменения ExecutionPolicy, но не в этот раз. Может быть, потому что я называю powershell из EXE? ИДК.
Некоторые советуют?
2 ответа
Итак, после бесконечных попыток я случайно нашел решение. Или, я бы лучше сказал.. это сработало для меня.
Я запустил powershell.exe из его корневого каталога с правами администратора. После этого я загрузил модуль PSReadLine вручную и снова установил ExecutionPolicy на RemoteSigned
,
После этих шагов все заработало как положено. Если честно, сейчас я не вижу разницы между открытием powershell из меню "Пуск" с правами администратора и открытием его из корневого каталога с правами администратора. Но это имело значение. Интересно.
Попробуйте запустить это так:
powershell.exe -ExecutionPolicy Bypass yourScript.ps1
Объяснение:
Из документации:
-ExecutionPolicy
Определяет новую политику выполнения. Допустимые значения для этого параметра:
- Ограниченный. Не загружает файлы конфигурации и не запускает скрипты. Ограничено - это политика выполнения по умолчанию.
- AllSigned. Требует, чтобы все сценарии и файлы конфигурации были подписаны доверенным издателем, включая сценарии, которые вы пишете на локальном компьютере.
- RemoteSigned. Требует, чтобы все скрипты и файлы конфигурации, загруженные из Интернета, были подписаны доверенным издателем.
- Неограниченные. Загружает все файлы конфигурации и запускает все скрипты. Если вы запускаете неподписанный скрипт, который был загружен из Интернета, вам будет предложено разрешение перед его запуском.
- Обход. Ничто не заблокировано и нет предупреждений или подсказок.
- Не определено. Удаляет текущую назначенную политику выполнения из текущей области. Этот параметр не удаляет политику выполнения, заданную в области групповой политики.