
No Windows, posso obter sessões de área de trabalho remota em um servidor específico usando:
qwinsta /server:SERVER_NAME
Mas isso me dá sessões de todos os estados diferentes (por exemplo: Ativo, Disco, ...).
Alguém sabe sobre um comando ou arquivo em lote ou script para obter apenas as sessões "ativas"? Quero poder executá-lo a partir de um cliente comum do Windows 7.
Responder1
qwinsta /server:SERVER_NAME | find /I "Active"
Observe que esta é apenas uma linha rápida e suja que cuspiria todas as linhas contendo "Ativo" (em letras minúsculas ou maiúsculas). Se você espera nomes de usuário que contenham esta string, as coisas serão mais complicadas e será necessário verificar a quarta coluna para encontrar a string "Ativa" correta:
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 )
Se você precisar processar campos únicos da saída de qualquer maneira, o último formato é preferido, pois exporia os campos nas variáveis %i
....%m
Mas esta construção também falha se você tiver nomes de usuário contendo espaços. Se for esse o caso, tudo está perdido com qwinsta e você deve procurar uma função do PowerShell para recuperar a lista de usuários.