検出コードに問題があり、バグに傾倒しています。
これが私のスクリプトです:
exit 0
または
[System.Environment]::Exit(0)
これにより、stdoutとstderrが空の終了コード「0」が返されます。 SCCMは、そのアプリケーションを「インストールされていません」と表示します。「インストール済み」と表示します。もちろん、実際のスクリプトは長くなりますが、これを使用してテストしているため、正しい結果が得られません。応答。
私の考えは後ろ向きですか?検出方法としてPowerShellを使用することについて説明しているリンク、記事、ブログを複数見つけましたが、機能していません。
ヒントやアイデアはありますか?ありがとう、
スクリプトの終了コードはSCCMではサポートされていません。
グラフでわかるように、終了コードがゼロ以外の値である場合は常に、アプリの検出状態は「不明」です。
STDOUTとSTDERRの2つの出力に焦点を合わせる必要があります。コンソールに書き込むときはいつでもSTDOUTに書き込むので、単純なWrite-Host "Installed"が機能します。エラー後もスクリプトを続行する場合は、Write-Error "Failed"を使用してSTDERRに書き込みます。または、スクリプトを完全に続行する場合は、単純なTHROWを使用できます。
これも見つけるために私を永遠に連れて行った。楽しい!
(クレジット https://david-obrien.net/2013/12/configmgr-powershell-application-detection-methods/ 情報)