SessionView
Windows Server पर सभी यूज़र सेशन्स, सेशन GUID सहित, को सूचीबद्ध और प्रदर्शित करने के लिए एक हल्का C# कंसोल एप्लिकेशन।
विशेषताएँ
- पूर्ण सेशन गणना (Complete Session Enumeration): Windows सर्वर पर सभी सक्रिय सेशन्स की सूची बनाता है
- विस्तृत सेशन जानकारी: सेशन ID, स्टेशन नाम, कनेक्शन स्थिति, यूज़रनेम और डोमेन प्रदर्शित करता है
- सेशन GUID प्राप्ति: Windows रजिस्ट्री से प्रत्येक सेशन के लिए अद्वितीय GUID पहचानकर्ता निकालता है
- कनेक्शन स्थिति पहचान: दिखाता है कि सेशन Active, Disconnected, Idle, आदि हैं या नहीं
- स्वच्छ कंसोल आउटपुट: त्वरित सेशन विश्लेषण के लिए आसानी से पठनीय स्वरूपित आउटपुट
आवश्यकताएँ
- Windows Server (2012 R2 या बाद का) या Windows क्लाइंट (Windows 10/11)
- .NET Framework 4.7.2+
- व्यवस्थापक विशेषाधिकार (सेशन जानकारी और रजिस्ट्री तक पहुँच के लिए आवश्यक)
स्थापना
विकल्प 1: स्रोत से निर्माण (Build from Source)
- रिपॉजिटरी को क्लोन या डाउनलोड करें
- Visual Studio 2019 या बाद के संस्करण में समाधान (solution) खोलें
- समाधान बनाएँ (Ctrl+Shift+B)
- एक्ज़ीक्यूटेबल
bin\Debug या bin\Release में स्थित होगा
विकल्प 2: कमांड लाइन निर्माण
MSBuild का उपयोग करके (Visual Studio के लिए Developer Command Prompt)
msbuild SessionView.csproj /p:Configuration=Release
या सीधे CSC का उपयोग करके
csc /out:SessionView.exe /platform:anycpu Program.cs
उपयोग
- व्यवस्थापक के रूप में चलाएँ: इस टूल को उन्नत (elevated) टोकन की आवश्यकता है
- एप्लिकेशन स्वचालित रूप से सभी सेशन्स की गणना करेगा और जानकारी प्रदर्शित करेगा
उदाहरण आउटपुट
=== 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...
सेशन स्थितियाँ
एप्लिकेशन निम्नलिखित कनेक्शन स्थितियाँ प्रदर्शित कर सकता है:
- WTSActive: उपयोगकर्ता सक्रिय रूप से सेशन का उपयोग कर रहा है
- WTSConnected: सेशन कनेक्टेड है
- WTSDisconnected: सेशन डिस्कनेक्टेड है लेकिन फिर भी चल रहा है
- WTSIdle: सेशन निष्क्रिय (idle) है
- WTSListen: सेशन कनेक्शन के लिए सुन रहा है
- WTSReset: सेशन रीसेट किया जा रहा है
- WTSDown: सेशन डाउन है
- WTSInit: सेशन प्रारंभ (initializing) हो रहा है
तकनीकी विवरण
उपयोग किए गए APIs
- WTS API (wtsapi32.dll): सेशन्स की गणना और सेशन जानकारी क्वेरी करने के लिए
- Windows Registry API (advapi32.dll): रजिस्ट्री से सेशन GUID प्राप्त करने के लिए
रजिस्ट्री स्थान
सेशन GUID इस प्रकार संग्रहीत होते हैं:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Remote\Terminal Services\Session\{SessionId}\SessionGuid
ज्ञात सीमाएँ
- सेशन 0 (सेवाएँ सेशन) के पास आमतौर पर GUID नहीं होता
- सेशन जानकारी तक पहुँचने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है
- उनकी स्थिति के आधार पर कुछ सेशन्स के पास सभी जानकारी उपलब्ध नहीं हो सकती है
समस्या निवारण
"Access Denied" त्रुटि
- सुनिश्चित करें कि आप एप्लिकेशन को व्यवस्थापक के रूप में चला रहे हैं
- जाँचें कि आपके पास सर्वर पर उचित अनुमतियाँ हैं
सेशन GUID अनुपलब्ध
- यह कुछ सिस्टम सेशन्स (जैसे सेशन 0) के लिए सामान्य है
- कुछ डिस्कनेक्टेड सेशन रजिस्ट्री में अपना GUID बनाए नहीं रख सकते हैं
कोई सेशन नहीं मिला
- सत्यापित करें कि आप Terminal Services सक्षम के साथ Windows Server पर चला रहे हैं
- जाँचें कि Remote Desktop Services भूमिका स्थापित है
उपयोग के मामले
- सिस्टम प्रशासन: सक्रिय और डिस्कनेक्टेड उपयोगकर्ता सेशन्स की निगरानी करें
- रिमोट डेस्कटॉप प्रबंधन: RDP कनेक्शन और उनकी स्थितियों को ट्रैक करें
- सुरक्षा ऑडिटिंग: उपयोगकर्ता सेशन्स और उनके अद्वितीय पहचानकर्ताओं की पहचान करें
- सेशन प्रबंधन स्क्रिप्ट: सेशन सफाई के लिए स्वचालन उपकरणों के साथ एकीकृत करें
- समस्या निवारण: टर्मिनल सर्वरों पर सेशन-संबंधित समस्याओं का निदान करें
लाइसेंस
यह प्रोजेक्ट शैक्षिक और प्रशासनिक उद्देश्यों के लिए यथावत (as-is) प्रदान किया गया है।
योगदान
बेझिझक समस्याएँ सबमिट करें, रिपॉजिटरी को फोर्क करें, और किसी भी सुधार के लिए पुल रिक्वेस्ट बनाएँ।