仅获取“活动”远程桌面会话

hhs*_*far 5 windows remote-desktop session

在 Windows 中,我可以使用以下命令获取特定服务器上的远程桌面会话:

qwinsta /server:SERVER_NAME
Run Code Online (Sandbox Code Playgroud)

但这给了我所有不同状态的会话(例如:活动、光盘……)。

是否有人知道命令、批处理文件或脚本来获取“活动”会话?我希望能够从普通的 Windows 7 客户端运行它。

the*_*bit 3

qwinsta /server:SERVER_NAME | find /I "Active"

请注意,这只是一个快速而肮脏的单行代码,它只会吐出包含“Active”(小写或大写)的每一行。如果您期望用户名包含此字符串,那么事情会变得更加复杂,并且需要检查第四列是否有正确的“Active”字符串:

for /F "usebackq tokens=1,2,3,4,5*" %i in (`qwinsta /server:SERVER_NAME ^| find "Active"`) do if "%l" == "Active" ( echo %i %j %k %l %m )
Run Code Online (Sandbox Code Playgroud)

如果您需要处理输出的单个字段,则首选后一种形式,因为它会公开%i...%m变量中的字段。

但如果您的用户名包含空格,这种结构也会被破坏。如果是这种情况,qwinsta 就失去了一切,您应该寻找 PowerShell 函数来检索用户列表。