У меня есть powershell, у которого есть следующее:
Param([Parameter(Mandatory = $true)] $TargetPaths=@())
Я связываю этот .ps1 с .intunewin с помощью диспетчера контента и загружаю в intune.
Теперь я хотел вызвать свой powershell с помощью команды установки, похожей на powershell -executionpolicy bypass -command .\powershell.ps1 -TargetPaths @('1','2','3'...)
Это отлично работает на моем локальном компьютере... но не проходит через установщик intune, мои файлы журнала никогда не создаются, и после тщательного изучения становится ясно, что сценарий никогда не запускается.
Может ли кто-нибудь посоветовать мне двигаться вперед, чтобы заставить это работать? Если я запускаю скрипт локально с теми же параметрами, он работает нормально. Я даже перенастроил его, чтобы он работал через выполнение cmd вместо powershell (включая использование «»» для одиночной двойной кавычки), и не смог заставить это работать.





К сожалению, я не могу предоставить вам окончательное решение.
Но вы можете попробовать параметр -file файла powershell.exe. У нас это частично работает. Это означает, что скрипт выполняется правильно, но Intune всегда показывает неправильный статус установки в первый момент. Таким образом, мы еще не решили окончательно и этот случай.
powershell -executionpolicy bypass -file ".\install.ps1" -i -name "myApp" -variant "2022"
Хотя на самом деле это не ответ на вопрос, я смог обойти проблему передачи массива, вместо этого сводя все это в строку при передаче параметра, а затем разбивая ее на массив внутри моего кода. Для этого я удалил все внутренние кавычки, а затем предположил их расположение. Не самый элегантный, но теперь скрипт выполняется.
Параметр файла сам по себе не помогал передавать массив.