4.5.10 jp1Imdd.execCmd
パラメーターに指定されたコマンドを実行するメソッドです。jp1Imdd.execCmdメソッドの詳細を次に示します。
- メソッド名
-
Object jp1Imdd.execCmd(String host, String cmd, Object env, String envFile, String jp1user)
- パラメーター
-
envに指定した環境変数がenvFileで指定したファイルにも記載されている場合,envで指定した値が優先されます。
- host
-
コマンドの実行先ホスト名を,1〜254バイトの範囲で指定します。
- cmd
-
実行コマンドと引数を,1〜4,095バイトの範囲で指定します。コマンド名に空白を含む場合は「"(ダブルクォーテーション)」で囲みます。
- env
-
実行先ホストでコマンドを実行する際の環境変数をオブジェクトのキーに,環境変数の値をオブジェクトの値に指定します。
最大30個まで指定できます。不要な場合はnullを指定します。オブジェクトのキーと値は,全体で1〜7,107バイトの範囲で指定します。
- envFile
-
環境変数ファイル名です。実行先ホストのファイルを,1〜255バイトの範囲の絶対パスで指定します。不要な場合はnullまたは空文字を指定します。
- jp1user
-
JP1ユーザー名を1〜31バイトの範囲で指定します。値が指定された場合,指定されたJP1ユーザーのプライマリーユーザーでコマンドを実行します。不要な場合はnullまたは空文字を指定します。
- 戻り値
-
コマンドの実行結果を格納したオブジェクトを返却します。オブジェクトに格納されているキーと値を次に示します。
項番
説明
キー
値
1
リモートコマンド実行に成功した場合(実行コマンドの起動に成功した場合)※
"response"
レスポンスオブジェクト
レスポンスオブジェクトに格納されているキーと値
"rc"
実行コマンドの戻り値
"stdOut"
コマンドの標準出力をUTF-8に変換した文字列
"stdError"
コマンドの標準エラー出力をUTF-8に変換した文字列
2
リモートコマンド実行に失敗した場合(実行コマンドの起動に失敗した場合)
"error"
エラーオブジェクト
エラーオブジェクトに格納されているキーと値
"rc"
エラーコード
- 注※
-
cmdに指定した実行コマンドが存在しない場合でも,実行先ホストへの接続に成功しcmd.exeまたは/bin/shが起動できたときは,戻り値,標準出力,標準エラー出力を返却します。なお,返却される戻り値,標準出力,標準エラー出力は,実行先ホストのcmd.exeまたは/bin/shに依存します。
- 例外
-
- IOEXception
-
-
I/Oエラーが発生した場合
-
- 前提条件
-
このメソッドを使用するためには,実行先ホストにJP1/Base 12-10以降がインストールされていて,IMの構成管理に追加されている必要があります。
- 実行可能なコマンド
-
jp1Imdd.execCmdメソッドで実行できるコマンドの種類を以下に示します。
- コマンドを実行するホストがWindowsの場合
-
-
実行形式ファイル(.com,.exe)
-
バッチファイル(.bat)
-
- コマンドを実行するホストがUNIXの場合
-
-
UNIXのコマンド
-
シェルスクリプト
-
- 重要
-
実行するコマンドは,JP1/Baseが実行している言語設定と同じと仮定して動作します。環境変数LANGを使用した文字の変更はしないでください。
次に示すコマンドは実行できません
-
対話操作を必要とするコマンド
-
画面を表示するコマンド
-
エスケープシーケンスや制御コードを伴うコマンド
-
デーモンなどの,終了しないコマンド
-
Windowsメッセージ機構やDDEなど,デスクトップとの対話が必要なコマンド(Windowsの場合)
-
shutdownやhaltなど,OSをシャットダウンするコマンド
-
JP1/Baseを停止するコマンド
-
jbs_spmd_reloadコマンド
- コマンドの実行方法
-
リモートコマンド実行機能は,次の処理によりコマンドを実行します。
- Windowsの場合
cmd.exe /c 指定コマンド
- UNIXの場合
-
OSユーザーのログインシェルを使用します。設定されていない場合は,「/bin/sh」を使用します。
/bin/sh -c 指定コマンド
- 実行ユーザー
-
引数jp1Userに指定されたJP1ユーザーのプライマリーユーザーで実行されます。jp1Userにnullまたは空文字を指定した場合は,実行先ホストの次の権限で実行されます。
-
Windowsの場合:SYSTEM
-
UNIXの場合:root
- 重要
-
実行先ホストでUACが有効な場合は,引数jp1Userに指定したJP1ユーザーのプライマリーユーザーは,ビルトインAdministratorである必要があります。
-
- 制限値
-
jp1Imdd.execCmdメソッドの制限値を次に示します。
表4‒35 jp1Imdd.execCmdメソッドの制限値 項番
項目
設定値
1
タイムアウト(秒)
3600
2
標準出力および標準エラー出力のサイズ(MB)
20
- エラーコード
-
実行先コマンドの起動に失敗した場合のエラーコードを次に示します。
表4‒36 実行先コマンドの起動に失敗した場合のエラーコード 項番
エラーケース
エラーコード
対処
1
指定したパラメーターが不正
1
パラメーターの指定を見直し再実行する。
2
実行先ホストへの接続に失敗
2
実行先ホストのJP1/Baseのサービスが起動しているか確認する。
3
タイムアウトが発生※
3
実行先ホスト,またはネットワークの負荷が高い状態のため,タイムアウトが発生した。しばらく待ってから再実行する。
4
受信するデータが上限を超えた
4
実行コマンドの標準出力,標準エラー出力のサイズが上限を超過した。実行コマンドの出力を見直しする。
5
環境変数ファイルが読み込めない
5
引数envFileに指定したファイルが実行先ホストに存在するかを確認する。
6
JP1ユーザーが不正
6
引数jp1Userに指定したJP1ユーザーについて以下を確認する。
-
実行先ホストのOSユーザーとのマッピングをしているか
-
ユーザーマッピングのサーバホストにJP1/IMのホストが含まれているか。
7
内部エラー
255
資料採取ツールで資料を採取し,システム管理者に連絡する。
- 注※
-
タイムアウトが発生した場合は,実行中のコマンドのプロセスは終了されます。
-
- 注意事項
-
実行先ホストでUACが有効な場合,jp1Userに指定したJP1ユーザーのプライマリーユーザーは,必ずビルトインAdministratorとしてください。