अंतर्निहित Windows Remote Desktop Connection (RDP) क्लाइंट (mstsc.exe) प्रत्येक सफल रिमोट कंप्यूटर कनेक्शन के बाद रिमोट कंप्यूटर का नाम (या IP पता) और लॉगिन के लिए उपयोग किए गए उपयोगकर्ता नाम को सहेजता है। अगले स्टार्ट पर, RDP क्लाइंट उपयोगकर्ता को पहले उपयोग किए गए कनेक्शन में से एक चुनने की पेशकश करता है। उपयोगकर्ता सूची से RDS/RDP होस्ट का नाम चुन सकता है, और क्लाइंट पहले लॉगिन के लिए उपयोग किए गए उपयोगकर्ता नाम को स्वचालित रूप से भर देता है।
यह अंतिम-उपयोगकर्ता के दृष्टिकोण से सुविधाजनक है, लेकिन सुरक्षा की दृष्टि से असुरक्षित है। खासकर जब आप किसी सार्वजनिक या अविश्वसनीय कंप्यूटर से अपने RDP सर्वर से कनेक्ट करते हैं।
सभी RDP (टर्मिनल) सत्रों के बारे में जानकारी प्रत्येक उपयोगकर्ता के रजिस्ट्री हाइव में व्यक्तिगत रूप से संग्रहीत होती है, यानी एक गैर-एडमिन किसी अन्य उपयोगकर्ता के RDP कनेक्शन इतिहास को देख नहीं पाएगा।

इस लेख में हम दिखाएंगे कि Windows रिमोट डेस्कटॉप कनेक्शन के इतिहास और सहेजे गए क्रेडेंशियल्स को कहां संग्रहीत करता है, mstsc विंडो से प्रविष्टियों को कैसे हटाएं, और RDP लॉग कैसे साफ़ करें।
रजिस्ट्री से RDP कनेक्शन कैश कैसे हटाएं
सभी RDP कनेक्शन के बारे में जानकारी प्रत्येक उपयोगकर्ता की रजिस्ट्री में संग्रहीत होती है। अंतर्निहित Windows टूल्स का उपयोग करके RDP कनेक्शन इतिहास की सूची से कंप्यूटर (या कंप्यूटर) को हटाना असंभव है। आपको मैन्युअल रूप से कुछ रजिस्ट्री कुंजियों को साफ़ करना होगा।
- रजिस्ट्री संपादक चलाएं (
regedit.exe) और रजिस्ट्री कुंजी HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client पर ब्राउज़ करें; - इस सेक्शन में आपको दो रजिस्ट्री कुंजियों की आवश्यकता है: Default (पिछले 10 RDP कनेक्शन का इतिहास संग्रहीत करता है) और Servers (पहले लॉगिन के लिए उपयोग किए गए सभी RDP सर्वर और उपयोगकर्ता नाम की सूची रखता है);

- रजिस्ट्री कुंजी HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default का विस्तार करें जिसमें हाल ही में उपयोग किए गए 10 IP पते या रिमोट कंप्यूटर के DNS नामों की सूची होती है (MRU - Most Recently Used)। रिमोट डेस्कटॉप सर्वर का नाम (या IP पता) MRU* पैरामीटर के मान में संग्रहीत होता है। हाल के RDP कनेक्शन के इतिहास को साफ़ करने के लिए, MRU0-MRU9 नामों वाले सभी पैरामीटर्स चुनें, राइट-क्लिक करें और Delete चुनें;

- अब कुंजी HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers का विस्तार करें। इसमें इस उपयोगकर्ता द्वारा कभी भी स्थापित किए गए सभी RDP कनेक्शन की सूची होती है। किसी भी होस्ट के नाम (या IP पते) वाली रजिस्ट्री कुंजी का विस्तार करें। UsernameHint पैरामीटर के मान पर ध्यान दें। यह RDP/RDS होस्ट से कनेक्ट करने के लिए उपयोग किए गए उपयोगकर्ता नाम को दिखाता है। यह उपयोगकर्ता नाम RDP होस्ट से स्वचालित रूप से कनेक्ट करने के लिए उपयोग किया जाएगा। इसके अलावा, CertHash वेरिएबल में RDP सर्वर SSL प्रमाणपत्र थंबप्रिंट होता है (लेख "Configuring trusted TLS/SSL certificates for RDP" देखें);

- सभी RDP कनेक्शन के इतिहास और सहेजे गए उपयोगकर्ता नामों को साफ़ करने के लिए, आपको Servers रजिस्ट्री कुंजी की सामग्री को साफ़ करना होगा। चूंकि एक साथ सभी नेस्टेड रजिस्ट्री कुंजियों को चुनना असंभव है, इसलिए संपूर्ण Servers कुंजी को हटाना और फिर इसे मैन्युअल रूप से पुनः बनाना आसान है;

- अब आपको डिफ़ॉल्ट RDP कनेक्शन फ़ाइल (जिसमें नवीनतम rdp सत्र के बारे में जानकारी होती है) हटाने की आवश्यकता है - Default.rdp (यह फ़ाइल एक छिपी हुई फ़ाइल है जो Documents निर्देशिका में स्थित है)।
- Windows हाल के रिमोट डेस्कटॉप कनेक्शन को Jump Lists में भी सहेजता है। यदि आप Windows 10 सर्च बॉक्स में
mstscटाइप करते हैं, तो पहले उपयोग किए गए RDP कनेक्शन सूची में दिखाई देंगे। आप रजिस्ट्री मेंHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advancedकुंजी में DWORD पैरामीटर Start_TrackDocs के साथ Windows 10 हाल की फाइल और Jump list में स्थान को पूरी तरह से अक्षम कर सकते हैं (इसे 0 पर सेट करें), या%AppData%\Microsoft\Windows\Recent\AutomaticDestinationsनिर्देशिका में फ़ाइलों को हटाकर Recent Items सूचियों को साफ़ कर सकते हैं।

नोट: रिमोट डेस्कटॉप के कनेक्शन इतिहास को साफ़ करने का वर्णित विधि सभी Windows डेस्कटॉप संस्करणों (Windows XP से Windows 10 तक) और Windows Server के लिए काम करती है।
RDP कनेक्शन इतिहास साफ़ करने के लिए स्क्रिप्ट
ऊपर हमने दिखाया कि Windows में RDP कनेक्शन के इतिहास को मैन्युअल रूप से कैसे साफ़ करें। हालांकि, इसे मैन्युअल रूप से करना (विशेष रूप से कई कंप्यूटरों पर) समय लेने वाला है। इसलिए, हम एक छोटी स्क्रिप्ट (BAT फ़ाइल) प्रदान करते हैं जो RDP इतिहास को स्वचालित रूप से साफ़ करने की अनुमति देती है।
RDP इतिहास सफाई को स्वचालित करने के लिए, आप इस स्क्रिप्ट को Windows स्टार्टअप में रख सकते हैं या GPO लॉगऑफ स्क्रिप्ट के माध्यम से उपयोगकर्ता कंप्यूटर्स पर चला सकते हैं।
@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinations
आइए स्क्रिप्ट के सभी कार्यों पर विचार करें:
- कंसोल में जानकारी आउटपुट अक्षम करें;
- रजिस्ट्री कुंजी HKCU\Software\Microsoft\Terminal Server Client\Default में सभी पैरामीटर्स हटाएं (हाल के RDP कनेक्शन की सूची साफ़ करें);
- पूरी रजिस्ट्री कुंजी HKCU\Software\Microsoft\Terminal Server Client\Servers हटाएं (सभी RDP कनेक्शन और सहेजे गए उपयोगकर्ता नामों की सूची साफ़ करें);
- पहले हटाई गई रजिस्ट्री कुंजी को पुनः बनाएं;
- वर्तमान उपयोगकर्ता के प्रोफ़ाइल निर्देशिका में Default.rdp फ़ाइल के गुण बदलें (डिफ़ॉल्ट रूप से यह Hidden और System है);
- Default.rdp फ़ाइल हटाएं;
- Jump list हाल के आइटम से रिमोट डेस्कटॉप कनेक्शन प्रविष्टियां साफ़ करें।
इसके अलावा, आप निम्न PowerShell स्क्रिप्ट का उपयोग करके RDP कनेक्शन के इतिहास को साफ़ कर सकते हैं:
Get-ChildItem "HKCU:\Software\Microsoft\Terminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:\Software\Microsoft\Terminal Server Client\servers' -Recurse 2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Default' 'MR*' 2>&1 | Out-Null
$docs = [environment]::getfolderpath("mydocuments") + '\Default.rdp'
remove-item $docs -Force 2>&1 | Out-Null
नोट: वैसे, RDP इतिहास सफाई की सुविधा कई सिस्टम और रजिस्ट्री "क्लीनर्स" में अंतर्निहित है, जैसे CCleaner, आदि।
Windows को RDP कनेक्शन इतिहास सहेजने से कैसे रोकें
यदि आप NOT चाहते कि Windows RDP कनेक्शन इतिहास सहेजे, तो आपको सभी उपयोगकर्ता खातों के लिए रजिस्ट्री कुंजी HKCU\Software\Microsoft\Terminal Server Client पर लिखने से इनकार करना होगा। सबसे पहले, निर्दिष्ट रजिस्ट्री कुंजी पर अनुमति विरासत अक्षम करें (Permissions -> Advanced -> Disable inheritance)। फिर रजिस्ट्री कुंजी ACL को बदलकर उपयोगकर्ताओं के लिए Deny विकल्प पर टिक करें (लेकिन आपको यह समझना चाहिए कि यह एक असमर्थित कॉन्फ़िगरेशन है)।

परिणामस्वरूप, mstsc.exe बस RDP कनेक्शन जानकारी को रजिस्ट्री में लिख नहीं पाएगा।
रिमोट डेस्कटॉप बिटमैप कैश कैसे साफ़ करें
रिमोट डेस्कटॉप कनेक्शन क्लाइंट में इमेज पर्सिस्टेंट बिटमैप कैशिंग सुविधा है। RDP क्लाइंट रिमोट स्क्रीन के शायद ही बदलने वाले टुकड़ों को रास्टर इमेज कैश के रूप में सहेजता है। इसके लिए धन्यवाद, mstsc.exe क्लाइंट स्थानीय ड्राइव कैश से स्क्रीन के उन हिस्सों को लोड करता है जो अंतिम रेंडरिंग के बाद से नहीं बदले हैं। यह RDP कैशिंग सुविधा नेटवर्क पर प्रसारित डेटा की मात्रा को कम करती है।
RDP कैश %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache निर्देशिका में दो प्रकार की फ़ाइलें हैं:
- *.bmc
- *.bin

ये फ़ाइलें रॉ RDP स्क्रीन बिटमैप को 64×64 पिक्सेल टाइल्स के रूप में संग्रहीत करती हैं। सरल PowerShell या Python स्क्रिप्ट्स का उपयोग करके (आसानी से RDP Cached Bitmap Extractor क्वेरी द्वारा खोजा जा सकता है), आप रिमोट डेस्कटॉप स्क्रीन के टुकड़ों के साथ PNG फ़ाइलें प्राप्त कर सकते हैं और उनका उपयोग संवेदनशील जानकारी प्राप्त करने के लिए कर सकते हैं। टाइल्स का आकार छोटा है, लेकिन RDP कैश का अध्ययन करने वाले व्यक्ति को उपयोगी जानकारी प्रदान करने के लिए पर्याप्त है।

आप Advanced टैब पर Persistent bitmap caching विकल्प को अक्षम करके RDP क्लाइंट को रिमोट डेस्कटॉप स्क्रीन इमेज कैश संग्रहीत करने से रोक सकते हैं।

कभी-कभी RDP कैश का उपयोग करते समय, यह क्षतिग्रस्त हो सकता है:
Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted. Some bitmaps may not appear.
इस मामले में, आपको RDP कैश निर्देशिका को साफ़ करना होगा या Bitmap Caching विकल्प को अक्षम करना होगा।
सहेजे गए RDP क्रेडेंशियल्स साफ़ करना
यदि एक नया रिमोट RDP कनेक्शन स्थापित करते समय, पासवर्ड दर्ज करने से पहले, उपयोगकर्ता Remember Me विकल्प को चेक करता है, तो उपयोगकर्ता नाम और पासवर्ड Windows Credential Manager में सहेजे जाएंगे। अगली बार जब आप उसी कंप्यूटर से कनेक्ट करते हैं, तो RDP क्लाइंट रिमोट होस्ट पर प्रमाणीकरण के लिए पहले से सहेजे गए पासवर्ड का स्वचालित रूप से उपयोग करता है।

आप क्लाइंट के mstsc.exe विंडो से सीधे सहेजे गए RDP पासवर्ड को हटा सकते हैं। कनेक्शन की सूची से उसी कनेक्शन का चयन करें, और Delete बटन पर क्लिक करें। फिर सहेजे गए क्रेडेंशियल्स को हटाने की पुष्टि करें।
इस बारे में अधिक विवरण कि RDP सहेजे गए पासवर्ड कैसे काम करते हैं, लिंक पर लेख में।

वैकल्पिक रूप से, आप Windows Credential Manager से सीधे सहेजे गए RDP पासवर्ड को हटा सकते हैं। Control Panel\User Accounts\Credential Manager सेक्शन पर जाएं। Manage Windows Credentials चुनें और सहेजे गए पासवर्ड की सूची में कंप्यूटर नाम ढूंढें (निम्न प्रारूप में TERMSRV/192.168.1.100)। मिले हुए आइटम का विस्तार करें और Remove बटन पर क्लिक करें।

एक्टिव डायरेक्टरी डोमेन वातावरण में, आप विशेष GPO का उपयोग करके RDP कनेक्शन के लिए पासवर्ड सहेजने को अक्षम कर सकते हैं - Network access: Do not allow storage of passwords and credentials for network authentication (एक लेख देखें)।
रिमोट होस्ट पर RDP-संबंधित इवेंट लॉग हटाना
कनेक्शन लॉग RDP/RDS होस्ट साइड पर भी सहेजे जाते हैं। आप Event Viewer लॉग में RDP कनेक्शन इतिहास के बारे में जानकारी पा सकते हैं:
- Security;
- Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-RemoteConnectionManager -> Operational;
- TerminalServices-LocalSessionManager -> Admin.

RDP कनेक्शन लॉग के विश्लेषण के बारे में अधिक पढ़ें लेख में।
आप wevtutil या PowerShell का उपयोग करके RDP सर्वर पर इवेंट लॉग साफ़ कर सकते हैं।