0

我有一个脚本Machine A可以检查端口是否打开Machine B。我想要做的是以某种方式传递到将要测试Machine B的端口。Machine A我已经研究过诸如调用命令和 telnet 之类的东西,但我很好奇你们认为在这两个服务器之间进行通信的最佳方式是什么。同一个网络,不同的域。我在两个盒子上都有管理员权限

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 回答