JP1/NETM/DM 運用ガイド1 (Windows(R)用)

[目次][用語][索引][前へ][次へ]

2.2.10 [外部プログラム]パネル

インストール前後およびインストールエラー時に,クライアントで起動させる外部プログラムを設定します。

図2-22 [外部プログラム]パネル

[図データ]

<この項の構成>
(1) 外部プログラム起動
(2) 外部プログラムの終了通知
(3) 外部プログラムの終了通知の扱い
(4) 外部プログラムの実行権限
(5) UNIXクライアントで外部プログラムを起動する場合の注意事項

(1) 外部プログラム起動

インストール直前,直後,およびインストールエラーのそれぞれの場合に,起動させたい外部プログラムのパス名を指定します。「インストール直前」,「インストール直後」,または「インストールエラー」の右側の[参照]ボタンをクリックして,表示されるダイアログから,選択したプログラムのフルパスを参考にして指定できます。ただし,[システム条件]パネルで「システム条件の取り込み」が設定されている場合,パス名は指定できません。

なお,JP1/NETM/DM Clientをリモートインストールする場合は,インストール直前だけ外部プログラムを起動できます。インストール直後,またはインストールエラー時に外部プログラムの起動を設定しても無視されます。

指定された外部プログラムは,処理が正常に終了したかどうかをサーバに通知する必要があります。終了通知の方法については,「(2) 外部プログラムの終了通知」を参照してください。また,外部プログラムから取得した終了通知の扱いは,[詳細]ボタンをクリックして表示される[外部プログラム用詳細設定]ダイアログボックスで指定します。詳細は,「(3) 外部プログラムの終了通知の扱い」を参照してください。

外部プログラムを設定するときの注意事項を次に示します。

UNIXクライアントへ配布するパッケージに外部プログラムの起動を設定する場合は,「(5) UNIXクライアントで外部プログラムを起動する場合の注意事項」を参照してください。

外部プログラム監視時間
「外部プログラム起動」で指定した外部プログラムの応答を監視する時間の,上限値と単位を指定します。外部プログラムが無限ループに陥ったときなどに備えて,外部プログラムの終了を待つ時間を,0〜21,600秒(360分,6時間)で指定してください。応答を監視しない場合は「0」を指定します。デフォルトは「1(秒)」です。なお,この指定は,[外部プログラム用詳細設定]ダイアログボックスで「外部プログラムの時間監視」チェックボックスをオンにしている場合に有効になります。[外部プログラム用詳細設定]ダイアログボックスについては,「(3) 外部プログラムの終了通知の扱い」を参照してください。
この指定値は,「インストール直前」,「インストール直後」,「インストールエラー」で起動するすべての外部プログラムに対して有効です。外部プログラムごとに異なる監視時間を設定することはできません。また,UNIXのパッケージャからパッケージング(資源登録)されたパッケージの外部プログラム監視時間は,参照はできますが,変更はできません。

(2) 外部プログラムの終了通知

ユーザプログラムをリモートインストールする場合,インストールの前後,およびインストールエラー時に,外部プログラムを起動させることができます。

外部プログラムは,終了コードまたはWindows Messageで,処理が正常に終了したかどうかをサーバに通知する必要があります。終了コードで通知する場合,およびWindows Messageで通知する場合の値の設定方法を次に示します。

なお,インストール直後に外部プログラムを起動した場合,外部プログラムの実行が終了した時点で配布終了として通知されます。

終了コードを指定した場合
スクリプトに通知されるプログラムの終了コードについては,正常終了の場合は0を,正常に終了しなかった場合は1〜255のどれかの値を設定してください。スクリプトから起動されたプログラムが終了すると,shell関数は制御を戻します。
Windows Messageを指定した場合
Windows Messageによって処理を通知する場合はWindows APIのRegisterWindowMessage()関数で文字列「DMP_UAP_QUIT」を定義し,返されたメッセージ識別子を使ってすべてのトップレベルウィンドウに自プログラムの処理結果を通知してください。Windows APIのPostMessage()関数の第3引数が処理結果コードになります。
文字列「DMP_UAP_QUIT」を定義する方法を次に示します。この例では,変数DMRtnが処理コードとなります。
(例)
UINT MsgId;
WORD DMRtn;
 
MsgId = RegisterWindowMessage("DMP_UAP_QUIT");
DMRtn = 0;    /* 終了コードの設定:正常 */
(VOID)PostMessage(HWND_BROADCAST,
MsgId,
DMRtn,
NULL);

(3) 外部プログラムの終了通知の扱い

外部プログラムの終了通知の扱いについては,[詳細]ボタンをクリックすると表示される[外部プログラム用詳細設定]ダイアログボックスで設定します。「インストール直前」,「インストール直後」の[詳細]ボタンをクリックした場合と,「インストールエラー」の[詳細]ボタンをクリックした場合とでは,表示される内容が異なります。「インストールエラー」の[詳細]ボタンから表示した場合は,「監視時間経過時の取り扱い」および「処理結果エラー時の取り扱い」は表示されません。それぞれの場合に表示される[外部プログラム用詳細設定]ダイアログボックスを次に示します。

図2-23 「インストール直前」,「インストール直後」の[詳細]ボタンから表示した[外部プログラム用詳細設定]ダイアログボックス

[図データ]

図2-24 「インストールエラー」の[詳細]ボタンから表示した[外部プログラム用詳細設定]ダイアログボックス

[図データ]

外部プログラムの時間監視
[JP1/NETM/DM パッケージング]ダイアログボックスの[外部プログラム]パネルで指定した「外部プログラム監視時間」の設定を有効にするかどうかを指定します。デフォルトはオフです。
チェックボックスをオンにすると,「外部プログラム監視時間」で指定した時間だけ外部プログラムを監視します。
チェックボックスをオフにすると,無限に外部プログラムを監視します。「外部プログラム監視時間」の上限値以上の監視が必要なときだけオフにしてください。起動した外部プログラムが,データベースの更新など時間の掛かる処理をする場合に有効です。
注意
外部プログラムの監視をしないと,外部プログラムが無限ループに陥った時などにジョブのハングアップが発生し,配布結果が得られないことがあります。ジョブのハングアップ防止のため,外部プログラムの時間監視を有効にすることをお勧めします。
監視時間経過時の取り扱い
外部プログラム監視時間を経過した場合,リモートインストールジョブを中断し,エラーとするかどうかを指定します。デフォルトでは「エラーにする」がオンになっています。通常はデフォルトのまま運用してください。
エラーにする
監視時間を経過した場合,リモートインストールジョブを「エラー」として配布管理システムまたは中継システムに通知します。また,外部プログラムも終了させます。
エラーにしない
監視時間を経過した場合も,リモートインストールジョブを「成功」として配布管理システムまたは中継システムに通知します。外部プログラムを起動後,常駐させて使いたいなどの場合にだけ,こちらを選択してください。また,この場合は,「外部プログラム監視時間」を短く設定してください。
外部プログラム処理結果の取得方法
外部プログラムは,処理が正常に終了したかどうかをサーバに通知する必要があります。ここでは,外部プログラムの処理結果を取得する方法を指定します。設定を間違えるとクライアントがハングアップするおそれがあるため,正確に設定してください。デフォルトでは,「外部プログラムの終了コードで通知」がオンになっています。
外部プログラムのWindows Messageで通知
クライアントから起動する外部プログラムから,さらに別のプログラムを起動したとき,そのプログラムの処理結果を取得できます。例えば,リモートインストールしたデータを「クライアントから起動した外部プログラム」で加工したあと,さらに,加工したデータを「Windows Messageでクライアントに結果を通知するプログラム」でデータベースに登録できます。
なお,これはインストールモードが「GUIインストールモード」のときだけ指定できます。バックグラウンドインストールモード(Windows)で「外部プログラムのWindows Messageで通知」を選択した場合は,クライアントで自動的に「外部プログラムの終了コードで通知」に変更されます。
外部プログラムの終了コードで通知
一般的な終了コードを返却するプログラムに指定してください。
処理結果エラー時の取り扱い
取得した外部プログラムのリターン情報(終了コード,または処理結果コード)が0以外の値の場合,エラーにするかどうかを指定します。デフォルトでは,「エラーとして処理を中断する」がオンになっています。
エラーとして処理を中断する
外部プログラムからのリターン情報が0以外の場合,エラーにします。EXEファイルなど,リターン情報を正確に取得できるプログラムに指定してください。取得されたリターン情報は,保守コード中のユーザステータスに設定されます。保守コードは,リモートインストールマネージャの[ジョブ実行状況]ウィンドウから表示される[詳細情報]ダイアログボックスで確認できます。
エラーとせずに処理を続行する
外部プログラムからのリターン情報が0以外の場合でも,そのまま処理を続行します。BATファイルなど,リターン情報が正確に取得できないプログラムに指定してください。

(4) 外部プログラムの実行権限

リモートインストール時にクライアントで外部プログラムを起動させる場合,クライアントのOSによって外部プログラムの実行権限が異なります。外部プログラムはシステム権限またはログオンユーザの権限で動作します。クライアントのOSごとの外部プログラムの実行権限を次の表に示します。

クライアントのOS 外部プログラムの実行権限
Windows 98,Windows Me ログオンユーザの権限
Windows Server 2003,Windows XP,
Windows 2000,Windows NT 4.0
システム権限またはログオンユーザの権限
Windows 8,Windows Server 2012,Windows 7,Windows Server 2008,Windows Vista システム権限

クライアントのOSがWindows Server 2003,Windows XP,Windows 2000,またはWindows NT 4.0の場合,外部プログラムの実行権限はパッケージのインストール方法,ログオンユーザのアクセス権,およびクライアントセットアップの設定内容によって異なります。パッケージのインストール方法別に,外部プログラムがシステム権限で動作する条件を次に示します。次の条件に該当しない場合は,ログオンユーザの権限で動作します。

なお,外部プログラムの実行権限によっては,ファイル・ディレクトリ・ネットワークドライブ・レジストリへのアクセス権がない場合があります。また,環境変数の設定も外部プログラムの実行権限に依存します。

クライアントセットアップのセットアップ項目については,マニュアル「構築ガイド」の「6.2 クライアントをセットアップする」を参照してください。

(5) UNIXクライアントで外部プログラムを起動する場合の注意事項

UNIXクライアントへ配布するパッケージに外部プログラムの起動を設定する場合,次のことに注意してください。