Hoy tuve que reiniciar de emergencia un servidor Windows corriendo servicios de Terminal Services. Pero antes quise ver si existían usuarios con sesiones abiertas (logueados) en el servidor, para asegurarme de no interuumpir una sesión en el proceso.
El comando query suser
muestra información acerca de las sesiones de usuario en un Terminal Server o RD Session Host (Remote Desktop). La salida incluye el nombre de usuario y sesión, el ID de sesión, el estado de la sesión (activa o desconectada), el tiempo ocioso o sin actividad (tiempo transcurrido desde la última tecla presionada o movimiento del ratón) y la fecha y hora en que el usuario inició la sesión:
Syntax QUERY USER [/server:ServerName] QUERY USER UserName [/server:ServerName] QUERY USER [SessionName | SessionID] [/server:ServerName] Key UserName The logon username of the user whose sessions you want to query. SessionName The name of the session that you want to query. SessionID The ID of the session that you want to query. /server:ServerName The Remote Desktop Session Host server to query. The default is the current server. /? Display help.
Ejemplo:

Se observa que se encuentran logueados dos usuarios. El usuario "administrador" (yo) está activo y ha iniciada la sesión hace unos instantes. En cambio, se observa que el usuario "ortiba" ha iniciado sesión hace aproximadamente 8 días, y se encuentra inactivo ("Desc" significa desconectado) desde hace más de 6 días.
Con esta información puedo reiniciar el servidor sin inconvenientes.
Referencias