Obtendo apenas as sessões de área de trabalho remota "ativa"

4

No Windows, posso obter as sessões da área de trabalho remota em um determinado servidor 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 batch ou script para obter apenas as sessões "ativas"? Eu quero ser capaz de executá-lo a partir de um cliente comum do Windows 7.

    
por hhsaffar 27.05.2013 / 12:06

1 resposta

2

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

Note que este é apenas um verso rápido e sujo que apenas cuspia todas as linhas contendo "Ativo" (em maiúsculas ou minúsculas). Se você espera nomes de usuário que contenham essa string, as coisas serão mais complicadas e precisará verificar a quarta coluna para a sequência "Ativo" 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 individuais da saída de qualquer maneira, o último formulário é o preferido, pois exporia os campos nas variáveis %i ... %m .

Mas essa construção também será interrompida se você tiver nomes de usuários contendo espaços. Se esse for o caso, tudo será perdido com qwinsta e você deverá procurar uma função do PowerShell para recuperar a lista de usuários.

    
por 27.05.2013 / 13:44