我们使用 mstsc.exe 在批处理文件中与其他服务器建立 RDP 连接,然后在运行某些任务后终止这些连接。这基本上可以正常工作,但有时 mstsc.exe 需要很长时间才能建立连接。有没有办法检查/提示 mstsc 已成功完成链接设置并且可以使用 RDP 连接?
答案1
您可以通过查询目标系统的安全日志来检查 RDP 登录是否成功。登录事件 ID 为 4624,RDP 登录类型为 10。其他登录类型https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4624
$user2find = "santaClaus"
$target = "server1234"
Get-winevent -comp $target -FilterHashtable @{Logname='security'; ID=4624; starttime=(get-date).addMinutes(-5)} | where {$_.properties[8].value -eq 10 -and $_.properties[5].value -eq $user2find}
答案2
如果您使用批处理文件,那么 netstat 可能是您的首选工具。假设您正在运行mstsc /admin /v:SERVERNAME
,您可以在该行后面输入以下命令:
netstat | findstr“ms-wbt-server”
“ms-wbt-server” 表示 RDP 连接,您可以检查 findstr 命令的 %errorlevel% 输出以查看是否找到了该字符串。如果错误级别为 0,则表示找到了该字符串,您可以继续;如果错误级别为 1,则表示未找到该字符串。