Я пишу скрипт для подготовки наших ноутбуков перед использованием. По сути, он устанавливает сертификаты и устанавливает для политики выполнения значение AllSigned.
Он запускается по щелчку правой кнопкой мыши и «Запуск с Powershell». Это стандартный windows 10 обход алгоритма исполнения, позволяющий запускать скрипт на неизмененных windows 10 машинах (по крайней мере, мне так кажется). Таким образом, я могу выполнить свой сценарий без необходимости явного изменения политики выполнения.
После запуска сценария машина настроена. Я просто получаю предупреждение, которое хочу подавить.
Для этого внутри сценария я повышаю уровень сценария до прав администратора с помощью параметра обхода. Это прекрасно работает, за исключением того, что Я получаю предупреждение при настройке политики выполнения AllSigned . Это говорит о том, что у меня есть политика, определенная в более конкретной области c.
Примечание. Команда сработала, и политика выполнения установлена. Он просто всплывает красным и выглядит как ошибка. Если кто-то выполняет сценарий, я не хочу, чтобы у меня возникали вопросы.
- Мой вопрос: -
Поскольку я знаю, что такое поведение предназначено, я не не хочу, чтобы предупреждение появилось. Как я могу подавить сообщение?
Я пробовал различные настройки с переключателями «WarningAction» и «ErrorAction», но он не работает.
Некоторые подробности:
ErrorMessage:
Set -ExecutionPolicy: Windows PowerShell успешно обновил политику выполнения, но параметр переопределяется политикой, определенной в более определенной области c. Из-за переопределения ваша оболочка сохранит свою текущую эффективную политику выполнения Bypass. Введите «Get-ExecutionPolicy -List», чтобы просмотреть параметры политики выполнения. Для получения дополнительной информации см. «Get-Help Set-ExecutionPolicy». В C: \ Users \ uwe \ Desktop \ InstallRootCA \ InstallRootCertificate.ps1: 46 char: 5 + Set-ExecutionPolicy AllSigned -Scope LocalMachine -Force + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: PermissionDenied: (:) [Set- ExecutionPolicy], SecurityException + FullyQualifiedErrorId: ExecutionPolicyOverride, Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
Соответствующие части кода из сценария powershell:
Повышение уровня сценария до выполнения: 1029 * *
Установка политики выполнения в конце скрипта:
Set-ExecutionPolicy AllSigned -Scope LocalMachine
Я перепробовал все виды флагов
-Force
-WarningAction Ignore|SilentlyContinue
-ErrorAction same
Но все равно появляется красное предупреждение.