获取“主动”远程桌面会话

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

qwinsta /server:SERVER_NAME 

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

有没有人知道一个命令或batch file或脚本来获取“活动”会话? 我希望能够从普通的Windows 7客户端运行它。

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

请注意,这只是一个快速和肮脏的单线,只是吐出每一行包含“活跃”(大写或小写)。 如果你期望包含这个string的用户名,事情将变得更加复杂,并且需要检查第四列是否有正确的“Active”string:

 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 ) 

如果您需要处理输出的单个字段,则最好使用后者的forms,因为它会暴露%i%mvariables中的字段。

但是如果你有包含空格的用户名,这个构造也会中断。 如果是这样的话,所有的东西都会丢失,你应该找一个PowerShell函数来检索用户列表。