SCCM 1607(aka SCCM 2016))のタスクシーケンスを使用して、かなり複雑なソフトウェアをインストールしています。タスクシーケンス内で、try/TSが失敗した場合にコンピューターを動作状態に復元できるように、ブロックをキャッチします。
そのようです:
ここでの問題は、タスクシーケンス内で実際に障害が発生した場合、エラー処理ルーチンがその仕事を行い、タスクシーケンスが正常に終了することです。エラーを反映するためにシーケンス内で自分のログをキャプチャしていますが、SCCMに関する限り、インストールは成功しました。ユーザーは通知やアプリケーションを受信しません。はインストールされていないにもかかわらず、ソフトウェアセンターにインストールされていると表示されます。エラーに関するレポートを取得するには、自分のログを確認する必要があります。SCCMは、インストールを再試行しません自分の。
エラー処理ブロックの最後のステップとして、タスクシーケンスを強制的に失敗させるにはどうすればよいですか?ユーザーにエラーを表示してヘルプデスクに連絡してほしい。また、SCCM=コンソールでエラーを確認できるようにしたいと思います。TSを単独で再試行させたいと思います(古いバージョンが使用中の場合、ほとんどすべてがアンインストールに失敗します。テストで見た失敗は、TSが削除する前にユーザーがログインして起動したためです。
タスクシーケンスを失敗させるには、「コマンドラインの実行」タスクシーケンスステップを使用して、ゼロ以外の値を返すコマンドを実行できます。1 終了コード。例えば:
cmd /c exit 1
(もちろん、タスクシーケンスステップの[エラーが発生しても続行する]チェックボックスがオフになっていることも確認する必要があります。)
実際、さまざまな失敗の理由を反映するためにさまざまな終了コードを使用したい場合は、上記の1
を他の数字に置き換えることができます。これにより、特定の理由で失敗したインストールを特定できます。
以上のことから、タスクシーケンスはこの特定のユースケースに最適なメカニズムではない可能性があります。 Powershell App Deployment Toolkit を使用して、アプリケーション(またはパッケージとプログラム)とともにこのソフトウェアを展開することを検討してください。これは、アプリケーションを閉じて、インストールが完了するまでユーザーがアプリケーションを再起動できないようにする機能など、多くの便利な機能を提供します。
1 技術的には、終了コードは、タスクシーケンスステップの[オプション]タブの[成功コード]フィールドにリストされていない番号の1つである必要があり、デフォルトでは0
および3010
です。