如何在批处理模式下发出mstsc,没有控制台会话?

时间:2016-02-01 19:39:35

标签: powershell mstsc

我需要发出mstsc并获得一个状态,这个命令适用于一系列IP。没有RDP控制台。

我不能使用WMI端口,只能使用RDP 3389到设备。很想使用PowerShell远程命令,但我读到他们使用的WMIObjects意味着使用WMI端口。

我使用了psexec并使用了WMI端口。这在我的实验室工作,但是当我点击真正的防火墙时,阻止了。

我尝试了多种方法,每种方法都会点击WMI端口或导致RDP控制台在服务器上弹出。我还需要将事件报告回连接或未找到文件以供进一步决策。

1 个答案:

答案 0 :(得分:0)

终端服务是为了交互式使用而非批处理模式。如果要检查PowerShell中是否可以访问端口,可以尝试与其建立TCP连接:

$servers = ...

foreach ($server in $servers) {
  $clnt = New-Object Net.Sockets.TcpClient
  try {
    $clnt.Connect($server, 3389)
    "$server:`tOK"
  } catch {
    "$server:`tnot available"
  } finally {
    $clnt.Dispose()
  }
}

在最近的Windows版本中,还有Test-NetConnection

$servers = ...

foreach ($server in $servers) {
  Test-NetConnection -Computer $server -Port 3389
}