この記事では管理対象インストールで期待通りにソフトウェアのインストールが行われない場合に確認すべき点について説明します。
メモ:
Quest KACEサポートにて管理対象インストールのトラブルについて調査する内容は KACEエージェントを通して行われるアクションがお客様の期待通りの結果をもたらしているかどうかのみであり、KACEの有無を問わずに構成可能なシステムへの設定変更の操作(インストールコマンドなど)がシステムに期待通りのアクションを行うか(あるいは行ったか)どうかについては調査しません。それらはお客様のIT管理者にて検証/調査/確認していただく必要があります。
管理対象インストールが失敗・期待通り動作しない場合、以下の原因が考えられます。
(1) 展開対象になっていない:
(ソフトウェアアイテムを使用する場合のみ)対象デバイスのOSが管理対象インストールに紐づけたソフトウェアアイテムの「サポートされるオペレーティングシステム」に該当していない。
(2) 管理対象インストールに紐づけたソフトウェアアイテムがデバイス詳細の"インストール済みプログラム"に反映されない。
    あるいは 
    管理対象インストールに紐づけたソフトウェアカタログアイテムがデバイス詳細の"検出済みソフトウェア"に反映されない。
(3) その他(指定したコマンドが期待通りに動作しなかった)
管理対象インストールの構成方法全般については以下のナレッジベース記事をご参考ください。
SMAによる管理対象インストールの設定方法 (4257165)
(1) 展開対象になっていない:(ソフトウェアアイテムを使用する場合のみ)対象デバイスのOSが管理対象インストールに紐づけたソフトウェアアイテムの「サポートされるオペレーティングシステム」に該当していない。
管理対象インストールでは、使用するソフトウェアアイテムの サポートされるオペレーティングシステム に配布先のOSが選択されている必要があります。
管理対象インストールの 詳細設定 にて  展開 の項目 にデバイスを選択していても、このオペレーティングシステムに含まれていないと展開対象にはなりません。
[確認方法]
管理対象インストールの詳細 を開き、以下の箇所を確認します。
 ・ ステータス:無効 以外に設定されている事
 ・ [保存]ボタンの下の[すべて表示]をクリックし、管理対象インストールタスク の対象にそのマシンが含まれている事
    対象になっていない場合、 管理対象インストールを紐づけているソフトウェアアイテムを開き、 "サポートされるオペレーティングシステム" が選択されていることを確認します。
 
(2) 使用したソフトウェアアイテムが"インストール済みプログラム"に反映されない
インストールコマンドが正しく機能しても、配布に使用した同一のソフトウェアアイテムが デバイスインベントリの インストール済みプログラム にリストされなければ、その管理対象インストールは 成功した(インストール済み)とは 判定されませせん。
管理対象インストールでは  インストールコマンドが0を返せば一時的に  "インストール済み" と認識されます。
ただし、次のインベントリ周期以後にインベントリにそのソフトウェアアイテムが含まれなかった場合には未インストールとみなし、次回の周期でインストールコマンドを実行してしまいます。これは最大試行回数の設定値まで繰り返されます。
よくあるケースでは テスト用マシンにインストールして自動登録されるソフトウェアアイテムを使用せず手動で独自のソフトウェアアイテムを作成して管理対象インストールを構成した場合が該当します。(インストール済みであることを認識するためのカスタムインベントリルールがないため、常にインストールされたことが認識されない)
[確認方法]
強制インベントリ完了後、管理対象インストールを紐づけているソフトウェアアイテムを開きます。
・発行元リンクやアンインストールコマンドが登録されている場合、デバイスから報告されたアイテムです。
・手動で作成したアイテムには カスタムインベントリルール の項目を持ちます。
  「カスタムインベントリルール」に適切なルール指定がされていることを確認します。
参考情報: カスタムインベントリルールを用いたソフトウェアアイテムの作成手順 (4252712)
(3) その他(コマンドが期待通りに動作しなかった)使用するコマンドラインを実行することでソフトウェアのインストールを正しく行えることを確認してください。
- リダイレクション
64bit のWindows OSにおいて KACEエージェントは 32bitアプリケーションとして動作するため、%WINDIR%\system32 (64bitのバイナリが入っている)のコマンドの呼び出しは %WINDIR%SYSWOW64\(32bitのシステムコマンドが入っている) へのリダイレクションが行われます。
参考情報: 64bit Windowsの32bitリダイレクションの取り扱いについて (4272388)
そのため、指定されるファイルが.EXEや.MSI(msiexec)の場合には問題ありませんが、wusaなどを起動させたり、batファイル内でSystem32内のコマンド(regなども含む)を記述する場合、
完全なコマンドライン指定において  C:\Windows\SYSNATIVE\コマンド名   をフルパスで指定しなければならない場合があります。(インストールするソフトによっては32bitで問題ない場合もある)
- SYSTEMでの動作
Windows 向けKACE SMAのエージェントはSYSTEM権限で動作し、管理対象インストールのコマンドもこの権限でプロセスを起動します。
指定したコマンドやスクリプト内でログオンユーザーの権限に依存する仕組み(ファイル共有など)がある場合、想定されるアクセスが行えずに失敗することがあります。
SYSTEM権限の実行をシミュレーション:
PSTools/psexec を使用し 以下の手順でcmdを起動してインストールのテストを実施してください。
PsExec PsExec - Sysinternals | Microsoft Learn
(64bit Windows) [管理者: コマンドプロンプト]から psexec -i -d -s C:\Windows\SYSWOW64\cmd.exe
補足:KACEのログからの調査について
管理対象インストールの実行結果はKACE SMAサーバーに対してはインストールを試みてインストールを試みたかどうか、インストールがされたかどうかのみが残ります。
エージェント側の kAgent.logログには 実行したコマンドのステータスを残すのみであり、ヒントにはなりますが原因調査にはあまり役立ちません。
KAgent.logサンプル( 32bit Windows 7で64bit 形式のインストーラーファイルを実行させた場合)
[2015-08-25.18:50:35][KDeploy:CMIPackageMgr::LaunchPro] KDeploy    LaunchProcess: ERROR returned by KLaunch (216).
[2015-08-25.18:50:35][KDeploy:CMIPackageMgr::InstallSw] KDeploy    Managed Install FAILED (jre-7u67-windows-x64.exe)
System Error Codes (0-499)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
この例では 216 から ERROR_EXE_MACHINE_TYPE_MISMATCH(0xD8) であると判断できます。
詳細なログを残したい場合、インストーラーやコマンドラインのオプションを調べて組み込む必要があります。
Windowsイベントログにも重要な情報が記録されているかもしれません。(MSIの挙動やアンチウイルスに関する動作)。