前のトピック: run-SSHShell コマンド -- 対話型の SSH コマンド ラインを実行する(Funclet)次のトピック: set alternate to コマンド -- 別の出力ファイルを設定する(Cmdlet)


run-winRemote コマンド -- 複数のリモート Windows システムでコマンドを実行する(Funclet)

run-winRemote コマンドは、1 つまたは複数のリモート Windows システムでコマンドを実行します。 コマンドには次の 2 つの形式があります。

単一ターゲット バージョンは、呼び出し元の AutoShell に入出力をリダイレクトします。

複数ターゲット バージョンの run-winRemote は非同期です。 結果を取得する方法については、サンプル コードを参照してください。

コマンドの構文は、以下のとおりです。

(1) run-winRemote -host hostname [-cmd cmd] [-user username] [-pass password] [-workDir workDir]
(2) run-winRemote [-cmd cmd] [-user username] [-pass password] [-workDir workDir] on remoteTargets

単一ターゲット バージョンの run-winRemote は、実行されたコマンドの結果コードを返します。

複数ターゲット バージョンは、WinRemote オブジェクトの配列を返します。 この配列の各要素は、remoteTargets リストにリストされたリモート Windows ノードの位置に対応します。 WinRemote オブジェクトは、たとえば実行が完了しているか、エラーが発生しているか、または実行が正常に完了しているかなどのいくつかの結果を確認できます。 WinRemote オブジェクトを使用してリモート ノードが指定されている場合、配列には元の RemoteTarget オブジェクトへの参照が含まれます。 ターゲット システムが文字列によって指定されている場合、新しい RemoteTarget オブジェクトが内部に作成され、配列に割り当てられます。

-host hostname

(オプション)リモート Windows ホストの名前を指定します。 引用符で囲まれていない引数トークンは自動的に文字列に変換されます。 式のコードは丸かっこ内に配置して、式が自動的に引用符で囲まれないようにします。

-cmd cmd

(オプション)リモートの Windows システムで実行するコマンドを指定します。 引用符で囲まれていない引数トークンは自動的に文字列に変換されます。 式のコードは丸かっこ内に配置して、式が自動的に引用符で囲まれないようにします。 このパラメータは、公開鍵認証を使用して、オンザフライで SSH セッションを作成する場合にのみ必要です。

デフォルト: cmd

-user username

(オプション)リモートの Windows システムにログインするユーザ名を指定します。 このユーザには、$ADMIN 共有に接続する権限が必要です。 ユーザ名を指定しない場合、AutoShell へのログイン時に入力されたユーザ名が使用されます。 引用符で囲まれていない引数トークンは自動的に文字列に変換されます。 式のコードは丸かっこ内に配置して、式が自動的に引用符で囲まれないようにします。

デフォルト: $$User

-pass password

(オプション)リモート ノードへのログインに使用するパスワードを指定します。 パスワードを指定しない場合、AutoShell へのログイン時に入力されたパスワードが使用されます。 このコマンドを発行した後に非表示でパスワードを入力するには、引数としてオプションのプロンプトと PW_GET() を指定します。 引用符で囲まれていない引数トークンは自動的に文字列に変換されます。 式のコードは丸かっこ内に配置して、式が自動的に引用符で囲まれないようにします。

デフォルト: $$Pass

-workDir workdir

実際の作業ディレクトリを指定します。

デフォルト: ""

on remoteTargets

指定したスクリプトを実行するリモート システムのカンマ区切りリストを指定します。 ターゲット ノードは、ホスト名/アドレスと WinRemote オブジェクトの 2 つの方法で指定できます。 WinRemote オブジェクトを使用するときに名前またはアドレスを使用してターゲット システムを指定すると、たとえば別のホストに別の認証情報を使用するなど、より柔軟に実行プロセスを制御できます。 リモート ターゲット リストには、ホスト名/アドレスを持つ WinRemote オブジェクトおよび文字列を混合させることができます。 ターゲット リストの要素は自動的に文字列化されません。したがって、ホスト名用のリテラル文字列を使用する場合は、引用符で囲む必要があります。

host1 で cmd.exe(コマンド シェル)を実行するには、次のコマンドを実行します。

run-winRemote -host host1 -cmd cmd.exe

host1 および host2 で mybatch.bat を実行し、host2 の結果を確認するには、次のコマンドを実行します。

x = run-winRemote -cmd mybatch.bat -localpath c:¥installations¥myinstall.exe on "host1", "host2";
? x[1].hasCompleted();
? x[1].result();
? x[1].output();

関連項目:

push-winRemote コマンド -- 複数のリモート Windows システム上でのコピーと実行(Funclet)

push-client コマンド -- Autoshell クライアントをリモート Windows システムにインストール(Funclet)

run-client コマンド -- リモート Windows システム上で Autoshell クライアントを実行(Funclet)

rem-client コマンド -- リモート Windows システムから Autoshell クライアントを削除(Funclet)