Obtener solo las sesiones de escritorio remoto "activas"

Obtener solo las sesiones de escritorio remoto "activas"

En Windows puedo obtener las sesiones de escritorio remoto en un servidor en particular usando:

qwinsta /server:SERVER_NAME

Pero esto me da sesiones de todos los estados diferentes (por ejemplo: Activo, Disco,...).

¿Alguien conoce un comando, un archivo por lotes o un script para obtener las sesiones "activas"? Quiero poder ejecutarlo desde un cliente normal de Windows 7.

Respuesta1

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

Tenga en cuenta que esto es solo una línea rápida y sucia que simplemente escupiría cada línea que contenga "Activo" (en minúsculas o mayúsculas). Si espera nombres de usuario que contengan esta cadena, las cosas serán más complicadas y requerirán verificar la cuarta columna para ver la cadena "Activa" correcta:

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 )

Si necesita procesar campos individuales de la salida de todos modos, se prefiere la última forma, ya que expondría los campos en las %i... %mvariables.

Pero esta construcción también falla si tiene nombres de usuario que contienen espacios. Si este es el caso, todo está perdido con qwinsta y debería buscar una función de PowerShell para recuperar la lista de usuarios.

información relacionada