Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.2.2 汎用コマンド実行部品

機能

操作対象の機器で,指定したコマンドを実行できます。

事前に認証情報を[エージェントレス接続先定義]エリアで設定している場合は,汎用コマンド実行部品に次の情報を指定して実行できます。

操作対象の機器で実行するコマンドには,JP1/AOサーバのOSと操作対象の機器のOSの両方のコマンドに入力できる文字を指定してください。例えば,JP1/AOサーバのOSと操作対象の機器のOSが両方とも日本語版のWindowsの場合,MS932の文字セットの範囲の文字が指定できます。

操作対象の機器のOSがWindowsの場合は,プロパティ「runAsSystem」に「true」を指定することで,Systemアカウントの権限でコマンドが実行されます。操作対象の機器のOSがUNIXの場合は,プロパティ「elevatePrivileges」の指定によって,rootユーザーまたは接続ユーザーの権限でコマンドが実行されます。

また,ローカル実行機能が有効の場合,ローカルホストのOSがWindowsのときは,Systemアカウントの権限でコマンドが実行されます。ローカルホストのOSがLinuxのときは,rootユーザーの権限でコマンドが実行されます。

なお,コマンドを実行する際の実行ディレクトリについては,次のとおりです。

部品のバージョンが02.01.00より前の部品との機能差異については,「付録A.1 基本部品のバージョン間の機能差異」を参照してください。

実行時の前提条件

注意事項

バージョン

02.01.00

タグ

Execute Script

戻り値

戻り値

説明

0〜63

指定したコマンドまたはスクリプトの戻り値(0〜63)を,そのまま部品の戻り値として返す。そのため,戻り値の意味は,実行したコマンドまたはスクリプトによって異なる。

64

指定したコマンドまたはスクリプトの戻り値が64以上で終了した場合,部品の戻り値を64で返す。

65

JP1/AOサーバとの接続に失敗した。例えば,部品実行中にJP1/AOサーバが停止された場合が該当する。

66

次のユーザーがJP1ユーザーにマッピングされている。

  • Administrators グループに所属しないユーザーである。

  • Administrators グループに所属するビルトイン Administrator以外のユーザーで,UACが有効である。

68

対象のジョブ実行IDに関する情報がない。

69

タスク処理エンジンの環境変数の取得に失敗した。

70

操作対象の機器との接続に失敗した。

71

コマンドの実行に失敗した。

72

コマンドの実行状態の取得に失敗した。

標準出力および標準エラー出力の合計が100KBを超えた。

76

接続タイムアウトが発生した。

77

操作対象の機器のホスト名解決に失敗した。

78

次のどれかの理由で,操作対象の機器との認証に失敗した。

  • パスワード認証に失敗した。

  • 操作対象の機器に公開鍵認証機能が設定されていない。

  • 公開鍵認証で,秘密鍵とパスフレーズが一致していない。

  • 公開鍵認証で,秘密鍵と操作対象の機器に登録されている公開鍵が対になっていない。

  • 公開鍵認証で,不正な秘密鍵が使用されている。

  • キーボードインタラクティブ認証に失敗した。

80

タスクの実行を停止した。

81

部品が不正な状態で呼び出された。

82

タスク処理エンジンからの要求メッセージを正しくパースできない。

83

JP1/AOサーバの環境が壊れている。

84

指定された部品の情報が取得できない。

86

指定したプロパティ値に誤りがある。

127

そのほかのエラーが発生した。

プロパティ一覧

プロパティを次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

destinationHost

対象ホスト

操作対象の機器のIPv4アドレス,IPv6アドレスまたはホスト名を1,024文字以内で指定します。なお,JP1/AOサーバと操作対象の機器は,ネットワークで接続されている必要があります。

なお,複数のIPアドレスまたはホスト名は指定できません。

入力

credentialType※1

認証種別

コマンドまたはスクリプト実行時の認証種別について,次のどちらかを指定します。

destination

[エージェントレス接続先定義]エリアに設定されている認証情報を使用する場合に指定します。「destination」を指定すると,JP1/AOのログインユーザーのIPアドレスに応じて,WindowsまたはSSHのエージェントレス接続先定義に設定済みの認証情報が適用されます。また,認証情報に関するプロパティ(「account」,「password」,「suPassword」,「publicKeyAuthentication」および「keyboardInteractiveAuthentication」)の指定を省略できます。

property

認証情報として,次のプロパティに入力した値を使用する場合に指定します。

  • account

  • password

  • suPassword

  • publicKeyAuthentication

  • keyboardInteractiveAuthentication

入力

account※1

ユーザーID

操作対象の機器にログインするためのユーザーIDを256文字以内で指定します。

また,次のどちらかの形式でドメインユーザーを指定できます。

  • ドメイン名¥ユーザー名

  • ユーザー名@ドメイン名

入力

password※1

パスワード

操作対象の機器にログインするためのパスワードを256文字以内で指定します。操作対象の機器のOSがUNIXで,プロパティ「publicKeyAuthentication」に「true」を指定した場合は,指定不要です。

入力

suPassword※1

rootのパスワード

操作対象の機器のOSがUNIXの場合,rootパスワードを256文字以内で指定します。操作対象の機器のOSがWindowsの場合,またはプロパティ「elevatePrivileges」で「false」を指定した場合は,指定不要です。

入力

runAsSystem

システムアカウントで実行

操作対象の機器のOSがWindowsの場合,Systemアカウントの権限でコマンドを実行するかどうかを指定します。操作対象の機器のOSがUNIXの場合,このプロパティに指定した値は無視されます。

true

Systemアカウントの権限でコマンドを実行する場合に指定します。

false

Systemアカウントの権限でコマンドを実行しない場合に指定します。認証情報に設定したユーザーの権限でコマンドを実行します。

false

入力

publicKeyAuthentication※1

SSH公開鍵認証設定

操作対象の機器のOSがUNIXの場合,接続に公開鍵認証を使用するかどうかについて次のどちらかを指定します。大文字と小文字は区別しません。このプロパティに値を指定しない場合は,「false」として扱われます。操作対象の機器のOSがWindowsの場合は,指定不要です。

true

公開鍵認証を使用する場合に指定します。

false

公開鍵認証を使用しない場合に指定します。※2

false

入力

keyboardInteractiveAuthentication※1

SSHキーボードインタラクティブ認証設定

操作対象の機器のOSがUNIXの場合,接続にキーボードインタラクティブ認証を使用するかどうかについて次のどちらかを指定します。大文字と小文字は区別しません。このプロパティに値を指定しない場合は,「false」として扱われます。操作対象の機器のOSがWindowsの場合は,指定不要です。

ただし,プロパティ「keyboardInteractiveAuthentication」の値が有効になるのは,「publicKeyAuthentication」に「false」を指定した場合です。「publicKeyAuthentication」に「true」を指定した場合,「keyboardInteractiveAuthentication」に「true」を指定しても,公開鍵認証が設定されます。

true

キーボードインタラクティブ認証を使用する場合に指定します。

false

キーボードインタラクティブ認証を使用しない場合に指定します。※2

false

入力

elevatePrivileges※1

権限昇格

操作対象の機器のOSがUNIXの場合,rootユーザーに昇格するかどうかについて,次のどちらかを指定します。大文字と小文字は区別しません。このプロパティに値を指定しない場合は,「true」として扱われます。操作対象の機器のOSがWindowsの場合は,指定不要です。

true

rootユーザーに昇格してコマンドを実行する場合に指定します。

false

rootユーザーに昇格しないでコマンドを実行する場合に指定します。接続ユーザーの権限でコマンドを実行します。

false

入力

commandLine※3

コマンドライン

操作対象の機器で実行したいコマンドまたはスクリプトの絶対パスを256文字以内で指定します。

コマンドラインには,JP1/AOサーバのOSと操作対象の機器のOSの両方のコマンドに入力できる文字を指定してください。

コマンドラインに環境変数を表す特殊文字などが含まれる場合でも,エスケープされません。例えば,エージェントレス接続先がUNIXの環境においてコマンドライン:「echo abc¥def」を実行すると,「abc¥def」とは出力されず,「abcdef」と出力されます。特殊文字を文字列として扱いたい場合,操作対象の機器のOSがWindowsのときは「%」で,操作対象の機器のOSがUNIXのときは「¥」でエスケープした文字を設定してください。

また,コマンドまたはスクリプトは,次のユーザーの権限で実行されます。

  • 操作対象の機器のOSがWindowsの場合

    • プロパティ「credentialType」で「destination」を指定している場合,[エージェントレス接続先定義]エリアで設定したユーザーの権限で実行されます。

    • プロパティ「credentialType」で「property」を指定している場合,プロパティ「account」で指定したユーザーの権限で実行されます。

  • 操作対象の機器のOSがUNIXの場合

    • プロパティ「credentialType」で「destination」を指定している場合,プロパティ「elevatePrivileges」の指定によって,rootユーザーまたは[エージェントレス接続先定義]エリアで設定したユーザーの権限で実行されます。

    • プロパティ「credentialType」で「property」を指定している場合,プロパティ「elevatePrivileges」の指定によって,rootユーザーまたはプロパティ「account」で指定したユーザーの権限で実行されます。

入力

commandLineParameter※3

コマンドラインパラメータ

コマンドまたはスクリプトの引数を1,024文字以内で指定します。

コマンドラインパラメータには,JP1/AOサーバのOSと操作対象の機器のOSの両方のコマンドに入力できる文字を指定してください。

コマンドラインパラメータに環境変数を表す特殊文字などが含まれる場合でも,エスケープされません。例えば,エージェントレス接続先がWindowsの環境においてコマンドライン:「echo」,コマンドラインパラメータ:「abc%def」を実行すると,「abc%def」とは出力されず,「abcdef」と出力されます。特殊文字を文字列として扱いたい場合,操作対象の機器のOSがWindowsのときは「%」で,操作対象の機器のOSがUNIXのときは「¥」でエスケープした文字を設定してください。

コマンドラインパラメータに環境変数を表す特殊文字などが含まれる場合でも ,エスケープされません。特殊文字を文字列として扱いたい場合,操作対象の機器のOSがWindowsのときは「%」で,操作対象の機器のOSがUNIXのときは「¥」でエスケープした文字を設定してください。

また,コマンドラインパラメータの値として環境変数も指定できます。操作対象の機器のOSによって指定形式が異なります。

  • 操作対象の機器のOSがWindowsの場合

    「%環境変数%」

  • 操作対象の機器のOSがUNIXの場合

    「$環境変数」

入力

outputCondition

標準出力プロパティ出力条件

プロパティ「stdoutProperty1〜3」に値を出力する条件を指定します。

指定できる値を次に示します。

always

常に「stdoutProperty1〜3」に値を出力します。プロパティ「stdoutPattern1〜3」に合致しなかった場合は空文字を出力します。

patternMatch

プロパティ「stdoutPattern1〜3」に合致した場合にプロパティ「stdoutProperty1〜3」に値を出力します。合致しなかった場合は値を出力しません。この場合,プロパティ「stdoutProperty1〜3」にサービスプロパティがマッピングされているときでも値は更新されません。

always

入力

stdoutProperty1

標準出力プロパティ1

プロパティ「stdoutPattern1」で切り出した文字列が出力されます。

出力

stdoutPattern1

標準出力パターン1

プロパティ「stdoutProperty1」に出力する標準出力の正規表現パターンを1,024文字以内で指定します。正規表現パターンはPCREに従って指定してください。※4

プロパティ「stdoutProperty1」にサービスプロパティのキーが指定されている場合,プロパティ「stdoutPattern1」の指定を省略すると,プロパティ「commandLine」で指定したコマンドまたはスクリプトの標準出力および標準エラー出力の内容全体がサービスプロパティに設定されます。

入力

stdoutProperty2

標準出力プロパティ2

プロパティ「stdoutPattern2」で切り出した文字列が出力されます。

出力

stdoutPattern2

標準出力パターン2

プロパティ「stdoutProperty2」に出力する標準出力の正規表現パターンを1,024文字以内で指定します。正規表現パターンはPCREに従って指定してください。※4

プロパティ「stdoutProperty2」にサービスプロパティのキーが指定されている場合,プロパティ「stdoutPattern2」の指定を省略すると,プロパティ「commandLine」で指定したコマンドまたはスクリプトの標準出力および標準エラー出力の内容全体がサービスプロパティに設定されます。

入力

stdoutProperty3

標準出力プロパティ3

プロパティ「stdoutPattern3」で切り出した文字列が出力されます。

出力

stdoutPattern3

標準出力パターン3

プロパティ「stdoutProperty3」に出力する標準出力の正規表現パターンを1,024文字以内で指定します。正規表現パターンはPCREに従って指定してください。※4

プロパティ「stdoutProperty3」にサービスプロパティのキーが指定されている場合,プロパティ「stdoutPattern3」の指定を省略すると,プロパティ「commandLine」で指定したコマンドまたはスクリプトの標準出力および標準エラー出力の内容全体がサービスプロパティに設定されます。

入力

注※1

ローカル実行機能が有効で,操作対象がローカルホストの場合,設定内容は無視されます。

注※2

プロパティ「publicKeyAuthentication」および「keyboardInteractiveAuthentication」の両方に「false」を指定した場合,パスワード認証が設定されます。

注※3
  • これらのプロパティに指定されたコマンドまたはスクリプトの,標準出力および標準エラー出力は,JP1/AOのステップの標準出力として出力されます。ただし,コマンドまたはスクリプトの,標準出力および標準エラー出力の合計が100KBを超えた場合の処理の実行結果については,製品サポートの対象外となります。事前に,コマンドまたはスクリプトを実行して,標準出力および標準エラー出力の合計が100KBを超えていないことを確認してください。

  • 操作対象の機器のOSがWindowsの場合,プロパティ「commandLine」および「commandLineParameter」で指定した内容は,バッチファイル化され操作対象の機器で実行されます。そのため,対象のコマンドまたはスクリプトをコマンドプロンプトで実行した結果と異なることがあります。

  • 操作対象の機器のOSがUNIXの場合,標準出力および標準エラー出力の改行コードは,次のとおり変更されます。

    • 「CR(0x0d)」が「LF(0x0a)」に変更される。

    • 「CR+LF(0x0d0a)」が「LF+LF(0x0a0a)」に変更される。

    また,標準出力および標準エラー出力の最後の文字列が改行コード(「CR」,「LF」または「CR+LF」)以外の場合は,末尾に「LF(0x0a)」が付加されます。

注※4
  • 正規表現により抽出されるのは,括弧でグループ化された部分です。

  • 正規表現に複数のグループを指定した場合,最初のグループに該当する範囲だけが部品の出力プロパティに格納されます。

  • 正規表現に複数の範囲が該当する場合,最初に該当する範囲だけが部品の出力プロパティに格納されます。複数の範囲を格納することはできません。

  • 任意のコマンドの実行結果など改行を含む文字列から抽出する場合,改行までの文字列を抽出するには,「(.*)」と指定してください。

プロパティ「stdoutPattern1〜3」および「stdoutProperty1〜3」の使用例

標準出力および標準エラー出力をプロパティ「stdoutPattern1〜3」の値と照合した結果を,プロパティ「stdoutProperty1〜3」にそれぞれ格納できるようになります。次の図に,「stdoutPattern1」に「aaabbb(.*)」を指定した場合のデータの流れを示します。

図4‒1 プロパティ「stdoutPattern」および「stdoutProperty」の使用例

[図データ]

標準出力「aaabbbccc」に対して,「stdoutPattern1」で定義しているように,標準出力の「aaabbb」より後ろの値(ccc)が抽出されます。抽出された値は,プロパティ「stdoutProperty1」に格納されます。

プロパティ「stdoutPattern1〜3」で指定した正規表現が標準出力と合致せず値を抽出できなかった場合に,プロパティ「stdoutProperty1〜3」に値を格納するかどうかは,プロパティ「outputCondition」で指定できます。

SSHで使用するポート番号の指定

操作対象の機器にSSHを使用して接続する場合は,ポート番号を指定できます。ポート番号を指定する方法と優先順位は,次のとおりです。

表4‒1 SSHのポート番号の優先順位

優先順位

設定個所

プロパティキー

デフォルト値

1

接続先プロパティファイル(接続先名.properties)

ssh.port

2

ユーザー設定プロパティファイル(config_user.properties)

ssh.port.number

22

(凡例)

−:値は設定されていません。

関連トピック