0

Machine Aでポートが開いているかどうかを確認するスクリプトがありますMachine B。私がやろうとしているのは、テストMachine Bするポートに何らかの形で渡すことです。Machine A私は、invoke-command や telnet などを調べましたが、これら 2 つのサーバー間で通信するための最良の方法は何だと思いますか? 同じネットワーク、異なるドメイン。両方のボックスで管理者アクセス権を持っています

4

1 に答える 1

2

値 ($testport) を持つ変数をリモート セッションに「渡す」だけの場合は、次のように実行できます。

invoke-command -session $session -scriptblock {param($testport)
  #create variable and assign it a value
  set-variable -name:"testport" -value:$testport -force  -erroraction silentlycontinue;
}

多くの変数を一度に送信するには (たとえば、親セッションからのすべてのグローバル変数でリモート セッションを初期化する場合)、それらを $hash にまとめて、次のように使用します。

invoke-command -session $session -scriptblock {param($hash, $setAsGlobal)
#create global variable and assign value for each hash table entry
if ($setAsGlobal -eq $true) {
  foreach ($key in $hash.keys) {
      set-variable -name:$key -value:$hash.$key -scope:'global' -force  -erroraction silentlycontinue;
  }
} else {
  foreach ($key in $hash.keys) {
    set-variable -name:$key -value:$hash.$key -force  -erroraction silentlycontinue;
  }
}

リモート セッションから変数を取得して $result に代入するには:

 $varname = "testport";
 $result = invoke-command -session $session -scriptblock {param($varname)
    get-variable -name $varname -valueonly
 } -argumentlist $varname
于 2012-10-30T16:46:00.360 に答える