У меня проблема с кодом обнаружения, и я склоняюсь к ошибке.
Вот мой сценарий:
exit 0
или
[System.Environment]::Exit(0)
Это дает мне код выхода «0» с пустыми stdout и stderr. SCCM должен увидеть это приложение как «Не установлено». Он видит его как «установленный». Конечно, мой настоящий сценарий длиннее, но я использую его для тестирования и не получаю правильного ответа.
Мое мышление в обратном направлении? Я нашел несколько ссылок, статей и блогов, в которых говорится об использовании PowerShell в качестве метода обнаружения, но у меня это не работает.
Какие-нибудь намеки или идеи? Спасибо,
Коды выхода сценария не поддерживаются SCCM.
Если вы заметите на диаграмме, что каждый раз, когда код выхода имеет ненулевое значение, состояние обнаружения приложения будет «Неизвестно».
Вам нужно сосредоточиться на двух выходах STDOUT и STDERR. Вы пишете в STDOUT каждый раз, когда пишете в консоль, поэтому работает простой Write-Host «Установлен». Вы пишете в STDERR либо с ошибкой записи «Failed», если вы хотите, чтобы сценарий продолжался после ошибки, либо, если вы хотите, чтобы это произошло, вы можете использовать простой THROW.
Мне потребовалась целая вечность, чтобы найти это. Наслаждайтесь!
(Кредит на https://david-obrien.net/2013/12/configmgr-powershell-application-detection-methods/ для информации)