SessionView
Un'applicazione console C# leggera per enumerare e visualizzare tutte le sessioni utente su Windows Server, inclusi i GUID delle sessioni.
Caratteristiche
- Enumerazione completa delle sessioni: Elenca tutte le sessioni attive sul server Windows
- Informazioni dettagliate sulla sessione: Mostra ID sessione, Nome stazione, Stato connessione, Nome utente e Dominio
- Recupero GUID sessione: Estrae l'identificatore GUID univoco per ogni sessione dal registro di Windows
- Rilevamento dello stato di connessione: Mostra se le sessioni sono Attive, Disconnesse, Inattive, ecc.
- Output pulito della console: Output formattato di facile lettura per una rapida analisi delle sessioni
Requisiti
- Windows Server (2012 R2 o successivo) o Windows Client (Windows 10/11)
- .NET Framework 4.7.2+
- Privilegi di amministratore (richiesti per accedere alle informazioni sulla sessione e al registro)
Installazione
Opzione 1: Compilazione dal codice sorgente
- Clona o scarica il repository
- Apri la soluzione in Visual Studio 2019 o successivo
- Compila la soluzione (Ctrl+Shift+B)
- L'eseguibile si troverà in
bin\Debug o bin\Release
Opzione 2: Compilazione da riga di comando
# Using MSBuild (Developer Command Prompt for Visual Studio)
msbuild SessionView.csproj /p:Configuration=Release
# Or using CSC directly
csc /out:SessionView.exe /platform:anycpu Program.cs
Utilizzo
- Esegui come amministratore: Questo strumento necessita di un token elevato
- L'applicazione enumererà automaticamente tutte le sessioni e mostrerà le informazioni
Esempio di output
=== Windows Server Session Enumerator ===
Found 3 session(s)
Session 1:
Session ID: 0
Station Name: Services
State: WTSDisconnected
Username: (No user logged in)
Session GUID: (Not available)
Session 2:
Session ID: 1
Station Name: Console
State: WTSActive
Username: Administrator
Domain: MYSERVER
Session GUID: {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}
Session 3:
Session ID: 2
Station Name: RDP-Tcp#1
State: WTSDisconnected
Username: JohnDoe
Domain: COMPANY
Session GUID: {B2C3D4E5-F6A7-8901-BCDE-F12345678901}
Press any key to exit...
Stati della sessione
L'applicazione può mostrare i seguenti stati di connessione:
- WTSActive: L'utente sta utilizzando attivamente la sessione
- WTSConnected: La sessione è connessa
- WTSDisconnected: La sessione è disconnessa ma ancora in esecuzione
- WTSIdle: La sessione è inattiva
- WTSListen: La sessione è in ascolto di connessioni
- WTSReset: La sessione è in fase di ripristino
- WTSDown: La sessione è fuori uso
- WTSInit: La sessione è in fase di inizializzazione
Dettagli tecnici
API utilizzate
- API WTS (wtsapi32.dll): Per enumerare le sessioni e interrogare le informazioni sulla sessione
- API del registro di Windows (advapi32.dll): Per recuperare i GUID delle sessioni dal registro
Percorso del registro
I GUID delle sessioni sono memorizzati in:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Remote\Terminal Services\Session\{SessionId}\SessionGuid
Limitazioni note
- La sessione 0 (sessione Servizi) di solito non ha un GUID
- Richiede privilegi di amministratore per accedere alle informazioni sulla sessione
- Alcune sessioni potrebbero non avere tutte le informazioni disponibili a seconda del loro stato
Risoluzione dei problemi
Errore "Access Denied"
- Assicurati di eseguire l'applicazione come amministratore
- Controlla di avere i permessi appropriati sul server
GUID sessione mancanti
- È normale per alcune sessioni di sistema (come la sessione 0)
- Alcune sessioni disconnesse potrebbero non conservare il loro GUID nel registro
Nessuna sessione trovata
- Verifica di essere su un Windows Server con Servizi Terminal abilitati
- Controlla che il ruolo Servizi Desktop remoto sia installato
Casi d'uso
- Amministrazione di sistema: Monitora le sessioni utente attive e disconnesse
- Gestione Desktop remoto: Tiene traccia delle connessioni RDP e dei loro stati
- Audit di sicurezza: Identifica le sessioni utente e i loro identificatori univoci
- Script di gestione delle sessioni: Integra con strumenti di automazione per la pulizia delle sessioni
- Risoluzione dei problemi: Diagnostica problemi relativi alle sessioni sui Server Terminal
Licenza
Questo progetto è fornito così com'è per scopi educativi e amministrativi.
Contributi
Sentiti libero di inviare segnalazioni, creare fork del repository e inviare richieste pull per eventuali miglioramenti.