SessionView
Eine leichte C#-Konsolenanwendung zum Auflisten und Anzeigen aller Benutzersitzungen auf Windows Server, einschließlich Sitzungs-GUIDs.
Funktionen
- Vollständige Sitzungsaufzählung: Listet alle aktiven Sitzungen auf dem Windows-Server auf
- Detaillierte Sitzungsinformationen: Zeigt Sitzungs-ID, Stationsname, Verbindungsstatus, Benutzername und Domäne an
- Sitzungs-GUID-Abruf: Extrahiert die eindeutige GUID-Kennung für jede Sitzung aus der Windows-Registrierung
- Verbindungsstatuserkennung: Zeigt an, ob Sitzungen aktiv, getrennt, im Leerlauf usw. sind
- Saubere Konsolenausgabe: Leicht lesbare formatierte Ausgabe für eine schnelle Sitzungsanalyse
Voraussetzungen
- Windows Server (2012 R2 oder neuer) oder Windows Client (Windows 10/11)
- .NET Framework 4.7.2+
- Administratorrechte (erforderlich für den Zugriff auf Sitzungsinformationen und die Registrierung)
Installation
Option 1: Aus dem Quellcode erstellen
- Repository klonen oder herunterladen
- Lösung in Visual Studio 2019 oder neuer öffnen
- Lösung erstellen (STRG+UMSCHALT+B)
- Die ausführbare Datei befindet sich in
bin\Debug oder bin\Release
Option 2: Befehlszeilen-Build
Verwendung von MSBuild (Developer Command Prompt für Visual Studio)
msbuild SessionView.csproj /p:Configuration=Release
Oder direkt mit CSC
csc /out:SessionView.exe /platform:anycpu Program.cs
Verwendung
- Als Administrator ausführen: Dieses Tool benötigt ein erhöhtes Token
- Die Anwendung zählt automatisch alle Sitzungen auf und zeigt die Informationen an
Beispielausgabe
=== 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...
Sitzungszustände
Die Anwendung kann die folgenden Verbindungsstatus anzeigen:
- WTSActive: Benutzer verwendet die Sitzung aktiv
- WTSConnected: Sitzung ist verbunden
- WTSDisconnected: Sitzung ist getrennt, läuft aber weiter
- WTSIdle: Sitzung ist im Leerlauf
- WTSListen: Sitzung wartet auf Verbindungen
- WTSReset: Sitzung wird zurückgesetzt
- WTSDown: Sitzung ist ausgefallen
- WTSInit: Sitzung wird initialisiert
Technische Details
Verwendete APIs
- WTS API (wtsapi32.dll): Zum Auflisten von Sitzungen und Abfragen von Sitzungsinformationen
- Windows Registry API (advapi32.dll): Zum Abrufen von Sitzungs-GUIDs aus der Registrierung
Registrierungsspeicherort
Sitzungs-GUIDs sind gespeichert unter:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Remote\Terminal Services\Session\{SessionId}\SessionGuid
Bekannte Einschränkungen
- Sitzung 0 (Dienstesitzung) hat normalerweise keine GUID
- Erfordert Administratorrechte, um auf Sitzungsinformationen zuzugreifen
- Bei einigen Sitzungen sind möglicherweise nicht alle Informationen verfügbar, abhängig von ihrem Zustand
Fehlerbehebung
Fehler "Access Denied"
- Stellen Sie sicher, dass Sie die Anwendung als Administrator ausführen
- Überprüfen Sie, ob Sie über die entsprechenden Berechtigungen auf dem Server verfügen
Fehlende Sitzungs-GUIDs
- Dies ist normal für bestimmte Systemsitzungen (z. B. Sitzung 0)
- Bei einigen getrennten Sitzungen bleibt die GUID möglicherweise nicht in der Registrierung erhalten
Keine Sitzungen gefunden
- Stellen Sie sicher, dass Sie auf einem Windows Server mit aktivierten Terminaldiensten ausgeführt werden
- Überprüfen Sie, ob die Remotedesktopdienste-Rolle installiert ist
Anwendungsfälle
- Systemadministration: Überwachen aktiver und getrennter Benutzersitzungen
- Remotedesktopverwaltung: Verfolgen von RDP-Verbindungen und deren Status
- Sicherheitsüberwachung: Identifizieren von Benutzersitzungen und deren eindeutigen Bezeichnern
- Sitzungsverwaltungsskripte: Integration mit Automatisierungstools zur Bereinigung von Sitzungen
- Fehlerbehebung: Diagnose von sitzungsbezogenen Problemen auf Terminalservern
Lizenz
Dieses Projekt wird wie besehen für Bildungs- und Verwaltungszwecke bereitgestellt.
Mitwirken
Zögern Sie nicht, Issues einzureichen, das Repository zu forken und Pull Requests für Verbesserungen zu erstellen.