Gestire le sessioni utente da riga di comando

A volte può capitare che su un server non sia possibile accedere tramite RDP o console e si desideri capire se c’è qualche sessione attiva o bloccata, in tal caso si può provare ad operare tramite riga di comando. Questo approccio che richiede l’esecuzione di comandi tramite credenziali con privilegi di amministratore locale sul sistema da esaminare può tornare utile in particolar modo su server virtuali che in apparenza non rispondono, ma si vuole evitare se possibile di arrestare forzatamente il sistema.

Il primo comando che è possibile utilizzare è query session che consente di visualizzare le sessioni presenti e in particolar modo il Nome, l’ID, l’utente e lo stato di ciascuna sessione:

query session /server srvtest01

NOMESESSIONE NOMEUTENTE      ID STATO    TIPO       DISPOSITIVO
services                      0 Disc
             administrator    3 Disc
console      admin_test       4 Attivo
31c5ce94259d4...          65536 Rimani in ascolto
rdp-tcp                   65537 Rimani in ascolto

query session visualizza le informazioni sulle sessioni RDP, ma l’elenco restituito non include solo le informazioni sulle sessioni attive RDP, ma anche su altre sessioni in esecuzione nel server.

Un secondo comando è quser che restituisce le informazioni sulle sessioni utente RDP:

quser /server srvtest01

NOMEUTENTE     NOMESESSIONE ID STATO INATTIVITÀ ACCESSO
administrator                3 Disc          5  05/12/2022 22:53
admin_test     console       4 Attivo        7  05/12/2022 11:34

Un terzo comando per analizzare le sessioni è qwinsta che è disponibile solo su sistemi a 64 bit e che è di fatto “sinonimo” di query user:

qwinsta /server:srvtest01

NOMESESSIONE     NOMEUTENTE     ID STATO   TIPO   DISPOSITIVO
services                         0 Disc
administrator                    3 Disc
console          admin_test      4 Attivo
31c5ce94259d4...             65536 Rimani in ascolto
rdp-tcp                      65537 Rimani in ascolto

E’ possibile provare a disconnettere le sessioni tramite il comando tsdiscon che permette di disconnettere appunto una sessione RDP:

tsdiscon 3 /server:srvtest01
tsdiscon 4 /server:srvtest01

Nel caso la disconnessione non sia sufficiente è possibile resettare la connessione ovvero eliminarla tramite il comando reset session o tramite il comando rwinsta:

reset session 3 /server:srvtest01 /v
reset session 4 /server:srvtest01 /v

rwinsta 3 /server:srvtest01 /v
rwinsta 4 /server:srvtest01 /v