我在一个企业环境中工作,该环境中有数百台 Windows 服务器(全部位于单个 AD 域中),既有本地的,也有其他国家的。我经常需要登录各种服务器上的 RDP 会话,有时我可能会忘记在关闭窗口之前注销。显然,这不是理想的选择,我想知道是否有人知道如何扫描域以查找从我的(或其他用户的)帐户运行的远程会话。谢谢!
答案1
为什么不直接为服务器设置 GPO 以限制会话空闲超时,这样如果您忘记了某个 GPO,它会在一定时间的不活动后自动将您注销。将其设置为几个小时或更长时间。最糟糕的情况是您忘记了当天离开的时间,服务器会在当晚自动断开您的连接。
如果你想自己做这件事,并真正去寻找这些吸盘,你可以很容易地编写脚本,这里是MSFT CLI 文档对于 TS
答案2
这应该可以做到:
for /f %i in (servers.txt) do query user jsmith /server:%i
如果您想显示所有用户名,可以删除 jsmith。
如果在 cmd 脚本中使用,请将百分号加倍:
SETLOCAL
SET FilePath=%1%
SET UserNameToSearch=%2%
FOR /F %%i IN (%FilePath%) DO query user %UserNameToSearch% /server:%%i
ENDLOCAL
答案3
您尝试过 MMC 远程桌面管理插件吗?Microsoft 还提供了远程桌面连接管理器
应该很容易检查哪些连接是打开的以及是否处于非活动状态
答案4
如果您仅通过 Microsoft 的远程桌面连接管理器通过 RDP 进入服务器并保存了您已登录的所有服务器...那么可以通过列出会话选项找到所有已断开连接的会话。选择每个服务器并右键单击它并选择列出会话选项卡选项。它将打开一个新窗口并显示连接到服务器的所有用户会话列表(活动、断开连接等)。找到您的会话并从服务器注销。