7.2.10 [外部プログラム]パネル
インストール前後およびインストールエラー時に、管理対象のコンピュータで起動させる外部プログラムを設定します。
|
- 〈この項の構成〉
(1) 外部プログラム起動
インストール直前、直後、およびインストールエラーのそれぞれの場合に、起動させたい外部プログラムのパス名を指定します。「インストール直前」、「インストール直後」、または「インストールエラー」の右側の[参照]ボタンをクリックして、表示されるダイアログから、選択したプログラムのフルパスを参考にして指定できます。
なお、JP1/IT Desktop Management 2 - Agentをリモートインストールする場合は、インストール直前だけ外部プログラムを起動できます。インストール直後、またはインストールエラー時に外部プログラムの起動を設定しても無視されます。
指定された外部プログラムは、処理が正常に終了したかどうかをサーバに通知する必要があります。終了通知の方法については、「7.2.10(2) 外部プログラムの終了通知」を参照してください。また、外部プログラムから取得した終了通知の扱いは、[詳細]ボタンをクリックして表示される[外部プログラム用詳細設定]ダイアログボックスで指定します。詳細は、「7.2.10(3) 外部プログラムの終了通知の扱い」を参照してください。
外部プログラムを設定するときの注意事項を次に示します。
-
外部プログラムとして指定できるのは、拡張子が*.exe、*.bat、*.cmdのファイルだけです。
-
外部プログラムのパスは、半角256文字以内で指定してください。
-
外部プログラムのパスにスペースを含める場合は「"」で囲んで指定してください。
-
外部プログラムのパスには、文字列「%HITACHI_REG\xxx%」を含めることはできません(xxxは、任意の文字列)。この文字列は、各日立プログラムプロダクトの固有のパスを表すもので、JP1/IT Desktop Management 2の予約語です。
-
バックグラウンドインストールモード(Windows)でリモートインストールする場合は、GUIを持たないプログラムを指定してください。GUIを持つプログラムを指定しても、GUIは表示されません。
ただし、Windows Server 2019、Windows Server 2016、Windows 10、Windows 8.1、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008またはWindows VistaでGUIを持つプログラムを実行した場合は、実行したプログラムに対して、GUIの表示を要求するダイアログボックスが表示されたままになることがあります。GUIが表示されたままになることを避けるためには、次の設定をしてください。
-
[外部プログラム]パネルの「外部プログラム監視時間」を1以上に設定してください。
-
[外部プログラム]パネルの[詳細]ボタンをクリックすると表示される[外部プログラム用詳細設定]ダイアログボックスで「外部プログラムの時間監視」にチェックしてください。
-
[外部プログラム]パネルの[詳細]ボタンをクリックすると表示される[外部プログラム用詳細設定]ダイアログボックスの「処理結果エラー時の取り扱い」設定で「エラーとして処理を中断する」を選択してください。
-
-
外部プログラムには16bitのアプリケーションを指定しないでください。Windowsのコンピュータに対して、外部プログラムに16bitアプリケーションを指定したバックグラウンドインストールモードのパッケージをリモートインストールすると、コンピュータがハングアップします。
-
「パッケージのインストール」ジョブと「リモートコレクト」ジョブの実行で、「外部プログラム起動」に、コンソールプログラムやBATファイルを指定した場合、Windowsの「対話型サービスの検出」ダイアログがタスクバー上に表示される現象が発生します。
UNIXへ配布するパッケージに外部プログラムの起動を設定する場合は、「7.2.10(5) UNIXエージェントで外部プログラムを起動する場合の注意事項」を参照してください。
- 外部プログラム監視時間
-
「外部プログラム起動」で指定した外部プログラムの応答を監視する時間の、上限値と単位を指定します。外部プログラムが無限ループに陥ったときなどに備えて、外部プログラムの終了を待つ時間を、0〜21,600秒(360分、6時間)で指定してください。応答を監視しない場合は「0」を指定します。デフォルトは「1(秒)」です。なお、この指定は、[外部プログラム用詳細設定]ダイアログボックスで「外部プログラムの時間監視」チェックボックスをオンにしている場合に有効になります。[外部プログラム用詳細設定]ダイアログボックスについては、「7.2.10(3) 外部プログラムの終了通知の扱い」を参照してください。
この指定値は、「インストール直前」、「インストール直後」、「インストールエラー」で起動するすべての外部プログラムに対して有効です。外部プログラムごとに異なる監視時間を設定することはできません。
(2) 外部プログラムの終了通知
ユーザプログラムをリモートインストールする場合、インストールの前後、およびインストールエラー時に、外部プログラムを起動させることができます。
外部プログラムは、終了コードまたはWindows Messageで、処理が正常に終了したかどうかをサーバに通知する必要があります。終了コードで通知する場合、およびWindows Messageで通知する場合の値の設定方法を次に示します。
なお、インストール直後に外部プログラムを起動した場合、外部プログラムの実行が終了した時点で配布終了として通知されます。
- 終了コードを指定した場合
-
スクリプトに通知されるプログラムの終了コードについては、正常終了の場合は0を、正常に終了しなかった場合は1〜255のどれかの値を設定してください。スクリプトから起動されたプログラムが終了すると、shell関数は制御を戻します。
- Windows Messageを指定した場合
-
Windows Messageによって処理を通知する場合はWindows APIのRegisterWindowMessage()関数で文字列「ITM_UAP_QUIT」を定義し、返されたメッセージ識別子を使ってすべてのトップレベルウィンドウに自プログラムの処理結果を通知してください。Windows APIのPostMessage()関数の第3引数が処理結果コードになります。
文字列「ITM_UAP_QUIT」を定義する方法を次に示します。この例では、変数DMRtnが処理コードとなります。
- (例)
UINT MsgId; WORD DMRtn; MsgId = RegisterWindowMessage("ITM_UAP_QUIT"); DMRtn = 0; /* 終了コードの設定:正常 */ (VOID)PostMessage(HWND_BROADCAST, MsgId, DMRtn, NULL);
(3) 外部プログラムの終了通知の扱い
外部プログラムの終了通知の扱いについては、[詳細]ボタンをクリックすると表示される[外部プログラム用詳細設定]ダイアログボックスで設定します。「インストール直前」、「インストール直後」の[詳細]ボタンをクリックした場合と、「インストールエラー」の[詳細]ボタンをクリックした場合とでは、表示される内容が異なります。「インストールエラー」の[詳細]ボタンから表示した場合は、「監視時間経過時の取り扱い」および「処理結果エラー時の取り扱い」は表示されません。それぞれの場合に表示される[外部プログラム用詳細設定]ダイアログボックスを次に示します。
|
|
- 外部プログラムの時間監視
-
[JP1/ITDM2 パッケージング]ダイアログボックスの[外部プログラム]パネルで指定した「外部プログラム監視時間」の設定を有効にするかどうかを指定します。デフォルトはオフです。
チェックボックスをオンにすると、「外部プログラム監視時間」で指定した時間だけ外部プログラムを監視します。
チェックボックスをオフにすると、無限に外部プログラムを監視します。「外部プログラム監視時間」の上限値以上の監視が必要なときだけオフにしてください。起動した外部プログラムが、データベースの更新など時間の掛かる処理をする場合に有効です。
- 注意
-
外部プログラムの監視をしないと、外部プログラムが無限ループに陥った時などにジョブのハングアップが発生し、配布結果が得られないことがあります。ジョブのハングアップ防止のため、外部プログラムの時間監視を有効にすることをお勧めします。
- 監視時間経過時の取り扱い
-
外部プログラム監視時間を経過した場合、リモートインストールジョブを中断し、エラーとするかどうかを指定します。デフォルトでは「エラーにする」がオンになっています。通常はデフォルトのまま運用してください。
- エラーにする
-
監視時間を経過した場合、リモートインストールジョブを「エラー」として配布管理システムまたは中継システムに通知します。また、外部プログラムも終了させます。
- エラーにしない
-
監視時間を経過した場合も、リモートインストールジョブを「成功」として配布管理システムまたは中継システムに通知します。外部プログラムを起動後、常駐させて使いたいなどの場合にだけ、こちらを選択してください。また、この場合は、「外部プログラム監視時間」を短く設定してください。
- 外部プログラム処理結果の取得方法
-
外部プログラムは、処理が正常に終了したかどうかをサーバに通知する必要があります。ここでは、外部プログラムの処理結果を取得する方法を選択します。次のパッケージの場合は、デフォルトで「外部プログラムのWindows Messageで通知」が選択されます。
-
パッケージャでパッケージングしたパッケージ
-
インストールモードが「GUIインストールモード」のパッケージ
-
外部プログラムのパスをジョブ作成時に指定したパッケージ
それ以外のパッケージの場合は、デフォルトで「外部プログラムの終了コードで通知」が選択されます。
設定を間違えるとエージェントがハングアップするおそれがあるため、ジョブ作成時に、デフォルトの設定のままで問題ないかどうかを必ず確認してください。
- 外部プログラムのWindows Messageで通知
-
管理対象のコンピュータから起動する外部プログラムから、さらに別のプログラムを起動したとき、そのプログラムの処理結果を取得できます。インストールモードが「GUIインストールモード」のときだけ選択できます。バックグラウンドインストールモード(Windows)で「外部プログラムのWindows Messageで通知」を選択した場合は、管理対象のコンピュータで自動的に「外部プログラムの終了コードで通知」に変更されます。
- 外部プログラムの終了コードで通知
-
一般的な終了コードを返却するプログラムに指定してください。
-
- 処理結果エラー時の取り扱い
-
取得した外部プログラムのリターン情報(終了コード、または処理結果コード)が0以外の値の場合、エラーにするかどうかを指定します。デフォルトでは、「エラーとして処理を中断する」がオンになっています。
- エラーとして処理を中断する
-
外部プログラムからのリターン情報が0以外の場合、エラーにします。EXEファイルなど、リターン情報を正確に取得できるプログラムに指定してください。取得されたリターン情報は、保守コード中のユーザステータスに設定されます。保守コードは、リモートインストールマネージャの[ジョブ実行状況]ウィンドウから表示される[詳細情報]ダイアログボックスで確認できます。
- エラーとせずに処理を続行する
-
外部プログラムからのリターン情報が0以外の場合でも、そのまま処理を続行します。
(4) 外部プログラムの実行権限
リモートインストール時に管理対象のコンピュータで外部プログラムを起動させる場合、管理対象のコンピュータのOSによって外部プログラムの実行権限が異なります。外部プログラムはシステム権限またはログオンユーザの権限で動作します。管理対象のコンピュータのOSごとの外部プログラムの実行権限を次の表に示します。
管理対象のコンピュータのOS |
外部プログラムの実行権限 |
---|---|
Windows Server 2019、Windows Server 2016、Windows 10、Windows 8.1、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2 |
システム権限 |
(5) UNIXエージェントで外部プログラムを起動する場合の注意事項
UNIXエージェントへ配布するパッケージに外部プログラムの起動を設定する場合、次のことに注意してください。
-
「<」「>」「|」「&」「$」などのシェルプログラムで特別な意味を持つ文字は使わないでください。
-
インストールエラー時の外部プログラム起動はできません。
-
インストール直前およびインストール直後の外部プログラム起動は、[スケジュール]パネルのインストール日時指定の有無によってパスの指定方法が違います。パスの指定方法が間違っていた場合、パッケージングとジョブの実行はできますが、配布先のUNIXで外部プログラムは起動しません。このとき、ジョブはエラーにならないで、正常終了するので注意してください。
指定方法の違いを次の表に示します。
インストール日時の指定
起動する外部プログラムのパス指定方法
インストール直前に起動
インストール直後に起動
あり
指定できません。
-
半角40文字以内で指定してください。
-
スペースを含んだパスは指定できません。
-
後処理プログラムに引数が存在する場合は、パスと引数全体を「"」(ダブルクォーテーション)で囲んでください。
-
引数がスペースを含む場合は、スペースを含む引数を「'」(シングルクォーテーション)で囲んでください。
なし
-
インストール直前に起動する外部プログラムだけ指定する場合、半角60文字以内で指定してください。
-
インストール直後に起動する外部プログラムだけ指定する場合、半角64文字以内で指定してください。
-
インストール直前と直後に起動する外部プログラムを両方指定する場合、合わせて半角60文字以内で指定してください。
-
文字列(引数)の数は最大18個指定できます。
-
複数の連続したスペースは1個の区切り文字として扱われます。
-
「'」(シングルクォーテーション)は引数として扱われません。
-
シェル変数は文字列として扱われるため、無効になります。
-
応答待ちになる処理を指定しないでください。
-