
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
... %m
variables.
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.