Quanto segue è più semplice se si esegue una query da un client Windows collegato allo stesso dominio del sistema in cui si sta eseguendo la query e potrebbe richiedere determinati diritti oltre e superiori a un utente di dominio standard. Se ti imbatti in problemi di autenticazione/permessi, quella sarebbe la prima cosa che controllerei.
C'è uno strumento disponibile almeno fino a quando Windows XP ha chiamato "qwinsta". Versioni successive di Windows hanno sia qwinsta che "query session".
qwinsta /server:computer01
SESSIONNAME USERNAME ID STATE TYPE DEVICE
console 0 Conn wdcon
rdp-tcp 65536 Listen rdpwd
administrator 2 Disc rdpwd
Che mostra l'utente "amministratore" connesso ma disconnesso. Poiché in questo esempio computer01 è un sistema Windows Server 2003 con la licenza RDP di "amministrazione" predefinita, esiste una seconda sessione in ascolto per consentire a qualcuno di connettersi.
esecuzione dello stesso comando ancora una volta dopo il collegamento a quella sessione precedentemente scollegato assomiglia a questo:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
[unchanged output removed]
rdp-tcp#25 administrator 2 Active rdpwd
Questo è sufficiente per rispondere "è una persona attiva tramite RDP", e se si sta utilizzando i singoli nomi utente, dovrebbe rispondere anche a "chi". Se utilizzi tutti "testuser" o "administrator" o qualcosa del genere, probabilmente vorrai conoscere la risposta a "da quale client", e questo non è indicato sopra.
Quanto sopra fornisce una rapida risposta di base senza la necessità di strumenti aggiuntivi. Per informazioni più dettagliate, si può guardare allo cassia library o PSTerminalServices (costruito su cassia). Vedi alcune delle risposte in this question per maggiori dettagli.
Il mio primo pensiero è stato quello di utilizzare strumenti Sysinternals come PsLoggedOn o LogonSessions. Ho quindi trovato il riferimento agli strumenti qwinsta e rwinsta precedentemente sconosciuti a me in this blog post from 2003.
Grazie mille per tutte le informazioni! –