4.19.4 クライアントホスト上のコマンド実行
JP1/IMでは,[コマンド実行]画面から管理対象ホスト(エージェントホストまたはマネージャーホスト)上のコマンドだけでなく,クライアントホスト(ビューアーのホスト)上のコマンドも実行できます。この機能をクライアントアプリケーション実行機能と呼びます。
クライアントアプリケーション実行機能では,JP1/Baseの機能を使用しません。クライアントアプリケーション実行機能では,画面を表示するコマンドも実行できます。
また,クライアントアプリケーション実行機能を使用して実行するクライアントホスト(ビューアーのホスト)上のコマンドを,クライアントアプリケーションと呼びます。なお,クライアントアプリケーションに,イベント情報を引き継ぐこともできます。
イベント情報の引き継ぎについては「4.19.5 コマンド実行時のイベント情報引き継ぎ」を参照してください。クライアントアプリケーションの実行方法については,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「8.1.1 [実行コマンド]でコマンドを実行する」および「8.1.2 [コマンド]ボタンでコマンドを実行する」を参照してください。管理対象ホストに対してコマンドを実行する場合は,「4.19.3 JP1/IM - Viewから管理対象ホストへのコマンド実行」を参照してください。
(1) 実行できるコマンド
クライアントアプリケーションの種類を,次に示します。
-
実行形式ファイル(.exe)
-
バッチファイル(.bat)
ただし,次のようなコマンドは実行できません。
-
標準入力を必要とするコマンド
-
リダイレクトを必要とするコマンド
-
エスケープシーケンスや制御コードを伴うコマンド
-
echo,copyなどの内部コマンド
なお,クライアントアプリケーションはJP1/IM - Viewを起動したOSユーザーで実行されます。
- 重要
-
-
コマンドに指定する半角スペースやタブ(制御コード:0x09)は,コマンドの引数の区切り文字として識別されます。半角スペースやタブをコマンドの引数として指定するには,半角スペースやタブを含む文字列をダブルクォーテーション(")で囲んでください。
ダブルクォーテーション(")を指定する場合は,ダブルクォーテーション(")の前に「\」を付け,「\"」としてください。なお,「\\"」は「\」で指定され,「\」と「"」に識別されます。囲まれていないダブルクォーテーション(")は,それ以降の文字列が一つの引数として識別されます。
コマンドの引数分割の例を次に示します。
- コマンドの引数分割の例1
-
指定するコマンドを次に示します。
c:\AppCommand.exe△test1△test2<tab>"test3△△test4"△"test5<tab><tab>test6"
(凡例)
<tab>:タブ(0x09)
△:半角スペース
表4‒29 コマンドの引数分割結果1 項番
分割状態
分割結果
説明
1
コマンド
c:\AppCommand.exe
特になし。
2
引数1
test1
前後の半角スペースで区切られる。
3
引数2
test2
前の半角スペースと,あとのタブで区切られる。
4
引数3
test3△△test4
"test3の前のタブおよびtest4"のあとの半角スペースで区切られる。ダブルクォーテーション(")で囲まれた半角スペースは分割されない。
5
引数4
test5<tab><tab>test6
"test5の前の半角スペースで区切られる。ダブルクォーテーション(")で囲まれたタブは分割されない。
- コマンドの引数分割の例2
-
指定するコマンドを次に示します。
c:\AppCommand.exe△test1△test2<tab>"test3\"<tab>\"test4"△"test5△\\"△test6
(凡例)
<tab>:タブ(0x09)
△:半角スペース
表4‒30 コマンドの引数分割結果2 項番
分割状態
分割結果
説明
1
コマンド
c:\AppCommand.exe
特になし。
2
引数1
test1
前後の半角スペースで区切られる。
3
引数2
test2
前の半角スペースと,あとのタブで区切られる。
4
引数3
test3"<tab>"test4
"test3の前タブ,およびtest4"のあとの半角スペースで区切られる。「\"」は「"」として識別される。
5
引数4
test5△\
"test5の前および\\"のあとの半角スペースで区切られる。「\\"」は「\」と「"」として識別される。
6
引数5
test6
前の半角スペースで区切られる。
-
64ビット版のWindowsでは,%WINDIR%\System32フォルダ以下に配置されているコマンドを実行すると,WOW64のリダイレクト機能によって,%WINDIR%\SysWow64フォルダ以下に配置されているコマンドにリダイレクトされます。リダイレクト先のコマンドがない場合,コマンドの実行に失敗することがあります。%WINDIR%\System32フォルダ以下に配置されているコマンドを実行コマンドに指定する場合は注意してください。
-
実行したコマンドのプロセスには,ユーザー環境変数,およびシステム環境変数が引き継がれますが,コマンドラインに「%環境変数名%」を指定しても環境変数は引き継がれません。
-
(2) コマンド実行に必要な条件
クライアントアプリケーションを実行するための条件を次に示します。
-
ビューアーホストに配置されているコマンドであること。
-
JP1/IM - Viewを起動したOSユーザーが持つ権限で実行できるコマンドであること。
(3) コマンドの実行状態・実行結果の確認
クライアントアプリケーションを実行した場合,実行結果(コマンドの戻り値,標準出力,標準エラー出力),および実行状態は,JP1/IM - Viewの[コマンド実行]画面の[実行結果]では確認できません。[実行結果]には,コマンドを実行したことを示すメッセージ,またはコマンドの実行に失敗したことを示すメッセージが表示されます。
クライアントアプリケーションの実行結果を確認したい場合は,バッチファイルなどを作成して,任意のファイルに実行結果を出力するようにしてください。
また,クライアントアプリケーションは,JP1/IM - Viewからは終了できません。ユーザー自身で終了させてください。
(4) ユーザーアカウント制御の対応
Windowsのユーザーアカウント制御(UAC)を使用する場合,JP1/IM - Viewを管理者ユーザー以外のOSユーザーで起動し,かつ,実行に管理者権限が必要なコマンドを実行すると,クライアントアプリケーションの起動に失敗したことを示すメッセージが[コマンド実行]画面の実行結果に表示され,コマンドの実行が中断されます。JP1/IM - Viewを[管理者として実行],または[管理者として実行]から起動したコマンドプロンプト上から起動した場合に実行できます。
項番 |
コマンドの実行に必要な権限 |
JP1/IM - Viewを起動したOSユーザー |
||
---|---|---|---|---|
管理者ユーザー |
Administratorsグループに属するユーザー |
左記以外のユーザー |
||
1 |
管理者 |
○ |
△ |
△ |
2 |
Administrators |
○ |
○ |
△ |
3 |
なし |
○ |
○ |
○ |