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

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

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

qwinsta /server:SERVER_NAME

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

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

答案1

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 )

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

但是,如果用户名包含空格,此构造也会中断。如果是这种情况,qwinsta 将一无所获,您应该寻找 PowerShell 函数来检索用户列表。

相关内容