रिमोट उपयोगकर्ता रिमोट डेस्कटॉप सर्विसेज (आरडीपी) के माध्यम से अपने विंडोज 10 और 11 कंप्यूटर से जुड़ सकते हैं। यह डिवाइस सेटिंग्स में RDP को सक्षम करने और किसी भी दूरस्थ डेस्कटॉप क्लाइंट का उपयोग करके कंप्यूटर से कनेक्ट करने के लिए पर्याप्त है। लेकिन एक साथ RDP सत्रों की संख्या पर प्रतिबंध है - केवल एक दूरस्थ उपयोगकर्ता एक साथ काम कर सकता है। यदि आप दूसरा RDP सत्र खोलने का प्रयास करते हैं, तो एक चेतावनी दिखाई देगी जो आपसे पहले उपयोगकर्ता के सत्र को डिस्कनेक्ट करने के लिए कहेगी।
Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?
सभी डेस्कटॉप विंडोज संस्करणों (विन 10 और 11 सहित) में दूरस्थ डेस्कटॉप सेवा के उपयोग पर कई प्रतिबंध हैं:
- आप RDP के माध्यम से दूरस्थ रूप से केवल उच्च Windows संस्करण (पेशेवर और उद्यम) से कनेक्ट कर सकते हैं। विंडोज़ होम और एकल भाषा संस्करणों में आने वाले दूरस्थ डेस्कटॉप कनेक्शन निषिद्ध हैं;
- केवल एक युगपत RDP कनेक्शन समर्थित है। जब आप दूसरा RDP सत्र खोलने का प्रयास करते हैं, तो उपयोगकर्ता को सक्रिय कनेक्शन बंद करने के लिए कहा जाता है;
- यदि कोई उपयोगकर्ता है जो कंप्यूटर के कंसोल (स्थानीय रूप से) पर काम करता है, तो जब आप एक नया रिमोट आरडीपी कनेक्शन बनाने का प्रयास करते हैं, तो कंसोल सत्र डिस्कनेक्ट हो जाएगा। यदि उपयोगकर्ता स्थानीय रूप से लॉग इन करने का प्रयास करेगा तो एक दूरस्थ RDP सत्र भी जबरन डिस्कनेक्ट हो जाएगा।
दरअसल, विंडोज़ पर एक साथ आरडीपी कनेक्शन की संख्या लाइसेंस द्वारा सीमित है (और किसी भी तकनीकी पहलू से नहीं)। इस प्रकार, यह प्रतिबंध वर्कस्टेशन के आधार पर एक टर्मिनल आरडीपी सर्वर बनाने की अनुमति नहीं देता है जिसका उपयोग कई उपयोगकर्ताओं द्वारा किया जा सकता है। Microsoft का तर्क सरल है:यदि आपको एक टर्मिनल सर्वर की आवश्यकता है - एक Windows सर्वर लाइसेंस, RDS CALs खरीदें, दूरस्थ डेस्कटॉप सत्र होस्ट (RDSH) भूमिका को स्थापित और कॉन्फ़िगर करें।
तकनीकी रूप से, पर्याप्त मात्रा में रैम वाला कोई भी विंडोज संस्करण कई दर्जनों दूरस्थ उपयोगकर्ताओं के एक साथ संचालन का समर्थन कर सकता है। एक उपयोगकर्ता सत्र (चल रहे ऐप्स को छोड़कर) के लिए औसतन 150-200 एमबी रैम की आवश्यकता होती है। यानी, एक साथ RDP सत्रों की अधिकतम संख्या सैद्धांतिक रूप से केवल कंप्यूटर संसाधनों द्वारा सीमित है।
आइए विंडोज 10 और 11 पर एक साथ RDP कनेक्शन की अनुमति देने के दो तरीकों पर विचार करें:RDP Wrapper का उपयोग करना termsrv.dll . टूल या पैचिंग सिस्टम फ़ाइल।
नोट . लेख में वर्णित सिस्टम संशोधनों को Microsoft लाइसेंस अनुबंध का उल्लंघन माना जाता है और आप उन्हें अपने जोखिम पर निष्पादित कर सकते हैं।
आरडीपी रैपर:विंडोज़ पर एकाधिक आरडीपी सत्र सक्षम करें
RDP रैपर लाइब्रेरी OpenSource प्रोजेक्ट आपको टर्म्सrv.dll फ़ाइल को बदले बिना Windows 10 पर एकाधिक RDP सत्रों को सक्षम करने की अनुमति देता है। यह टूल SCM (सर्विस कंट्रोल मैनेजर) और रिमोट डेस्कटॉप सर्विसेज के बीच एक लेयर के रूप में काम करता है। RDPWrap आपको न केवल एक साथ कई RDP कनेक्शनों के लिए समर्थन सक्षम करने की अनुमति देता है, बल्कि Windows होम संस्करणों पर RDP सर्वर बनाने की भी अनुमति देता है। RDP Wrapper टर्म्सrv.dll फ़ाइल में कोई बदलाव नहीं करता है, यह केवल बदले हुए पैरामीटर के साथ टर्म्सआरवी लाइब्रेरी लोड कर रहा है।
इस प्रकार, RDPWrap टर्म्सrv.dll फ़ाइल अद्यतन के मामले में भी काम करेगा। यह आपको विंडोज़ अपडेट से डरने की अनुमति नहीं देता है।
महत्वपूर्ण . RDP Wrapper को स्थापित करने से पहले, यह सुनिश्चित करना महत्वपूर्ण है कि आप टर्म्सrv.dll फ़ाइल के मूल (अनपैच्ड) संस्करण का उपयोग कर रहे हैं। अन्यथा, आरडीपी रैपर अस्थिर हो सकता है या बिल्कुल भी शुरू नहीं हो सकता है।आप RDP रैपर को GitHub रिपॉजिटरी https://github.com/binarymaster/rdpwrap/releases से डाउनलोड कर सकते हैं (RDP Wrapper लाइब्रेरी का नवीनतम उपलब्ध संस्करण v1.6.2 है)। प्रोजेक्ट को 2017 से अपडेट नहीं किया गया है, लेकिन इसका उपयोग विंडोज 10 और यहां तक कि विंडोज 11 के सभी नए बिल्ड में किया जा सकता है।
RDPWrap-v1.6.2.zip संग्रह में कुछ फ़ाइलें हैं:
- RDPWinst.exe — एक आरडीपी रैपर लाइब्रेरी प्रोग्राम को इंस्टॉल/अनइंस्टॉल करें;
- RDPConf.exe — एक आरडीपी रैपर विन्यास उपकरण;
- RDPCheck.exe —एक आरडीपी चेक यूटिलिटी (स्थानीय आरडीपी चेकर);
- install.bat, uninstall.bat, update.bat — RDP Wrapper को स्थापित करने, अनइंस्टॉल करने और अपडेट करने के लिए बैच फ़ाइलें।
RDPWrap को स्थापित करने के लिए, install.bat चलाएं एक व्यवस्थापक के रूप में फ़ाइल करें। प्रोग्राम को C:\Program Files\RDP Wrapper में इंस्टाल किया जाएगा निर्देशिका।
स्थापना पूर्ण होने के बाद, RDPConfig.exe चलाएँ . सबसे अधिक संभावना है, स्थापना के तुरंत बाद, उपकरण दिखाएगा कि आरडीपी आवरण चल रहा है (स्थापित, चल रहा है, सुन रहा है), लेकिन काम नहीं कर रहा है। लाल चेतावनी पर ध्यान दें [समर्थित नहीं]। यह रिपोर्ट करता है कि Windows 10 (ver. 10.0.19041.1320) का यह संस्करण RDPWrapper द्वारा समर्थित नहीं है।
तथ्य यह है कि विंडोज 10 के प्रत्येक संस्करण के लिए rdpwrap.ini कॉन्फ़िगरेशन फ़ाइल में एक विवरण होना चाहिए। आपकी कॉन्फ़िग फ़ाइल में आपके Windows 10 बिल्ड के लिए कोई सेटिंग नहीं है।
rdpwrap.ini फ़ाइल का वर्तमान संस्करण यहाँ डाउनलोड किया जा सकता है https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini
इस पृष्ठ की सामग्री को "C:\Program Files\RDP Wrapper\rdpwrap.ini" फ़ाइल में मैन्युअल रूप से कॉपी करें। या PowerShell cmdlet Invoke-WebRequest का उपयोग करके फ़ाइल डाउनलोड करें (आपको पहले दूरस्थ डेस्कटॉप सेवा बंद करनी होगी):
Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"
अपने कंप्यूटर को पुनरारंभ करें, RDPConfig.exe उपकरण चलाएँ। निदान . में जांच लें कि सभी आइटम हरे हैं अनुभाग और कैप्शन [पूरी तरह से समर्थित] प्रकट होता है। नीचे दिया गया स्क्रीनशॉट दिखाता है कि इस नए कॉन्फिगर के साथ RDP रैपर विंडोज 11 पर भी ठीक काम करता है।
अपने कंप्यूटर पर कई RDP सत्र स्थापित करने का प्रयास करें (किसी भी RDP क्लाइंट का उपयोग करें:mstsc.exe, rdcman, आदि)। यह अच्छी तरह से काम किया (आप सहेजे गए आरडीपी प्रमाण-पत्रों का भी उपयोग कर सकते हैं)! अब आपका Windows 10 दो (और अधिक) दूरस्थ उपयोगकर्ताओं को एक साथ विभिन्न RDP सत्रों का उपयोग करने की अनुमति देता है।
RDPWrap टूल सभी Windows संस्करणों में समर्थित है, इसलिए आप किसी भी Windows डिवाइस पर अपना खुद का टर्मिनल (RDS) सर्वर बना सकते हैं।
इसके अलावा, आरडीपी रैपर इसकी अनुमति देता है:
- दूरस्थ डेस्कटॉप सक्षम करें;
- विकल्प लॉगऑन स्क्रीन पर उपयोगकर्ताओं को छिपाएं आपको विंडोज़ लॉगऑन स्क्रीन से उपयोगकर्ताओं की सूची छिपाने की अनुमति देता है;
- यदि आप प्रति उपयोगकर्ता एकल सत्र को अक्षम करते हैं विकल्प, एक ही उपयोगकर्ता खाते (रजिस्ट्री पैरामीटर fSingleSessionPerUser) के अंतर्गत एक साथ कई RDP सत्रों की अनुमति होगी = 0 reg कुंजी
HKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser
के अंतर्गत सेट है ); - आरडीपी पोर्ट — आप रिमोट डेस्कटॉप पोर्ट नंबर को TCP 3389 से किसी अन्य में बदल सकते हैं;
- सत्र छायांकन मोड में अनुभाग, आप रिमोट कंट्रोल (छाया) कनेक्शन मोड को आरडीपी सत्रों में कॉन्फ़िगर कर सकते हैं।
आरडीपी रैपर विंडोज 10 पर काम नहीं कर रहा है
कुछ मामलों में, RDP Wrapper टूल अपेक्षानुसार काम नहीं करता है और आप एकाधिक RDP सत्रों का उपयोग करके अपने Windows होस्ट पर नहीं जा सकते हैं।
यदि उपयोगिता स्थिति अनुभाग में [समर्थित नहीं] दिखाई देती है, तो rdpwrap.ini फ़ाइल में आपके Windows बिल्ड के लिए कॉन्फ़िगरेशन शामिल नहीं है। ऊपर बताए अनुसार rdpwrap.ini फ़ाइल को अपडेट करें।
यदि rdpwrap.ini फ़ाइल को अद्यतन करने के बाद RDP Wrapper काम नहीं करता है, तो rdpwrap.ini फ़ाइल खोलने और अपने Windows संस्करण के लिए विवरण अनुभाग खोजने का प्रयास करें। कैसे पता करें कि rdpwrapper कॉन्फ़िग फ़ाइल में आपके Windows के संस्करण के लिए समर्थन है या नहीं?
नीचे दिया गया स्क्रीनशॉट दिखाता है कि मेरे विंडोज 10 के संस्करण (10.0.19041.1320) के लिए दो विवरण अनुभाग हैं:
[10.0.19041.1320] ….. [10.0.19041.1320-SLInit] …..
यदि आपके Windows के संस्करण के लिए कॉन्फ़िग फ़ाइल में कोई अनुभाग नहीं है, तो अपने Windows बिल्ड के लिए rdpwrap.ini स्ट्रिंग्स को खोजने के लिए Google का उपयोग करने का प्रयास करें। फ़ाइल के अंत में आपको मिलने वाली पंक्तियों को जोड़ें।
साथ ही, यदि आपको RDPWrapper में समस्या है, तो आप https://github.com/stascorp/rdpwrap/issues पर समस्या खोल सकते हैं। यहां आप वास्तविक rdpwrap.ini फ़ाइल भी पा सकते हैं।यदि सुरक्षा अद्यतन स्थापित करने या Windows 10 बिल्ड को अपग्रेड करने के बाद, RDP Wrapper ठीक से काम नहीं करता है, तो जाँच करें कि निदान अनुभाग में "श्रोता स्थिति:नहीं सुन रहा है" प्रदर्शित होता है।
rdpwrap.ini फ़ाइल को अद्यतन करने का प्रयास करें, और फिर सेवा को पुनः स्थापित करें:
rdpwinst.exe -u
rdpwinst.exe -i
ऐसा होता है कि जब आप किसी भिन्न उपयोगकर्ता खाते के अंतर्गत दूसरा RDP कनेक्शन स्थापित करने का प्रयास करते हैं, तो आपको एक चेतावनी दिखाई देती है:
The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.
इस मामले में, आप "कनेक्शन की सीमित संख्या" नीति को सक्षम करने के लिए स्थानीय समूह नीति संपादक (gpedit.msc) का उपयोग कर सकते हैं। "कंप्यूटर कॉन्फ़िगरेशन के तहत -> प्रशासनिक टेम्पलेट -> विंडोज घटक -> दूरस्थ डेस्कटॉप सेवाएं -> दूरस्थ डेस्कटॉप सत्र होस्ट -> कनेक्शन अनुभाग। इसका मान 999999 में बदलें।
GPO को अपडेट करने और सेटिंग लागू करने के लिए अपने कंप्यूटर को पुनरारंभ करें।
एकाधिक RDP सत्र सक्षम करने के लिए शर्तेंrv.dll संशोधित करें
rdpwrapper का उपयोग किए बिना Windows 10 में समवर्ती RDP उपयोगकर्ता कनेक्शन की संख्या पर प्रतिबंध को हटाने के लिए, आप प्रतिस्थापित कर सकते हैं मूल termsrv.dll फ़ाइल। यह दूरस्थ डेस्कटॉप सेवा द्वारा उपयोग की जाने वाली मुख्य लाइब्रेरी फ़ाइल है। फ़ाइल C:\Windows\System32 . में स्थित है निर्देशिका।
इससे पहले कि आप termrv.dll फ़ाइल को संपादित करें या बदलें, इसकी बैकअप प्रतिलिपि बनाने की सलाह दी जाती है। यदि आवश्यक हो तो यह आपको फ़ाइल के मूल संस्करण पर वापस जाने में मदद करेगा। एलिवेटेड कमांड प्रॉम्प्ट खोलें और कमांड चलाएँ:
copy c:\Windows\System32\termsrv.dll termsrv.dll_backup
फिर आपको फ़ाइल का स्वामित्व लेने की आवश्यकता है। किसी फ़ाइल के स्वामी को TrustedInstaller से कमांड का उपयोग करके स्थानीय व्यवस्थापक समूह में बदलने के लिए:
takeown /F c:\Windows\System32\termsrv.dll /A
SUCCESS: The file (or folder): c:\Windows\System32\termsrv.dll now owned by the administrators group
अब स्थानीय व्यवस्थापक समूह को icacls.exe का उपयोग करके टर्म्सrv.dll फ़ाइल पर पूर्ण नियंत्रण अनुमतियाँ प्रदान करें:
icacls c:\Windows\System32\termsrv.dll /grant Administrators:F
processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files.
उसके बाद, दूरस्थ डेस्कटॉप सेवा बंद करें (TermService ) services.msc . का उपयोग करके कंसोल या कमांड प्रॉम्प्ट से:
Net stop TermService
दूरस्थ डेस्कटॉप सेवाएँ UserMode पोर्ट पुनर्निर्देशक सेवा इसके साथ रुक जाती है।
आगे बढ़ने से पहले, आपको विंडोज 10 के अपने संस्करण (बिल्ड नंबर) का पता लगाना होगा। पावरशेल कंसोल खोलें और कमांड चलाएँ:
Get-ComputerInfo | select WindowsProductName, WindowsVersion
. चुनें
फिर किसी भी HEX संपादक (उदाहरण के लिए, Tiny Hexer) का उपयोग करके termrv.dll फ़ाइल खोलें। आपके विंडोज बिल्ड के आधार पर, आपको नीचे दी गई तालिका के अनुसार स्ट्रिंग को खोजने और बदलने की आवश्यकता है:
Windows बिल्ड | स्ट्रिंग ढूंढें | इससे बदलें |
Windows 11 RTM ( 21एच2 - 22000.258) | 39 81 3C 06 00 00 0F 84 4F 68 01 00 |
B8 00 01 00 00 89 81 38 06 00 00 90
|
Windows 10 x64 21H2 | 39 81 3C 06 00 00 0F 84 DB 61 01 00 | |
Windows 10 x64 21H1 | 39 81 3C 06 00 00 0F 84 2B 5F 01 00 | |
Windows 10 x64 20H2 | 39 81 3C 06 00 00 0F 84 21 68 01 00 | |
Windows 10 x64 2004 | 39 81 3C 06 00 00 0F 84 D9 51 01 00 | |
Windows 10 x64 1909 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 | |
Windows 10 x64 1903 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 | |
Windows 10 x64 1809 | 39 81 3C 06 00 00 0F 84 3B 2B 01 00
| |
Windows 10 x64 1803 | 8B 99 3C 06 00 00 8B B9 38 06 00 00
| |
Windows 10 x64 1709 | 39 81 3C 06 00 00 0F 84 B1 7D 02 00
|
उदाहरण के लिए, मेरा विंडोज 10 x64 का निर्माण 21H1 (19043.1320) है जिसमें टर्म्सआरवी.डीएलएल फ़ाइल संस्करण 10.0.19041.1320 है। Tiny Hexer में टर्म्सrv.dll फ़ाइल खोलें, फिर टेक्स्ट खोजें:
39 81 3C 06 00 00 0F 84 2B 5F 01 00
और इसे इसके साथ बदलें:
B8 00 01 00 00 89 81 38 06 00 00 90
फ़ाइल सहेजें और TermService चलाएँ।
यदि कुछ गलत हो जाता है और आप दूरस्थ डेस्कटॉप सेवा के साथ कुछ समस्याओं का अनुभव करते हैं, तो सेवा बंद कर दें और संशोधित टर्म्सrv.dll फ़ाइल को मूल संस्करण से बदल दें:
copy termsrv.dll_backup c:\Windows\System32\termsrv.dll
PowerShell का उपयोग करके Windows पर टर्म्सrv.dll को पैच करना
मैन्युअल रूप से HEX संपादक का उपयोग करके टर्म्सrv.dll फ़ाइल को संशोधित न करने के लिए, आप पैच को स्वचालित रूप से लागू करने के लिए निम्न पावरशेल स्क्रिप्ट का उपयोग कर सकते हैं। यह स्क्रिप्ट विंडोज पावरशेल संस्करण पर आधारित है और आधुनिक पावरशेल कोर पर काम नहीं करती है। स्क्रिप्ट सार्वभौमिक है और इसका उपयोग विंडोज 10 (1809+) और विंडोज 11 के सभी संस्करणों पर टर्म्सआरवी.डीएलएल फ़ाइल को पैच करने के लिए किया जा सकता है।
# Stop RDP service, make a backup of the termsrv.dllfile and change the permissions
Stop-Service UmRdpService -Force
Stop-Service TermService -Force
$termsrv_dll_acl = Get-Acl c:\windows\system32\termsrv.dll
Copy-Item c:\windows\system32\termsrv.dll c:\windows\system32\termsrv.dll.copy
takeown /f c:\windows\system32\termsrv.dll
$new_termsrv_dll_owner = (Get-Acl c:\windows\system32\termsrv.dll).owner
cmd /c "icacls c:\windows\system32\termsrv.dll /Grant $($new_termsrv_dll_owner):F /C"
# search for a pattern in termsrv.dll file
$dll_as_bytes = Get-Content c:\windows\system32\termsrv.dll -Raw -Encoding byte
$dll_as_text = $dll_as_bytes.forEach('ToString', 'X2') -join ' '
$patternregex = ([regex]'39 81 3C 06 00 00(\s\S\S){6}')
$patch = 'B8 00 01 00 00 89 81 38 06 00 00 90'
$checkPattern=Select-String -Pattern $patternregex -InputObject $dll_as_text
If ($checkPattern -ne $null) {
$dll_as_text_replaced = $dll_as_text -replace $patternregex, $patch
}
Elseif (Select-String -Pattern $patch -InputObject $dll_as_text) {
Write-Output 'The termsrv.dll file is already patch, exitting'
Exit
}
else {
Write-Output "Pattern not found "
}
# patching termsrv.dll
[byte[]] $dll_as_bytes_replaced = -split $dll_as_text_replaced -replace '^', '0x'
Set-Content c:\windows\system32\termsrv.dll.patched -Encoding Byte -Value $dll_as_bytes_replaced
# comparing two files
fc.exe /b c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll
# replacing the original termsrv.dll file
Copy-Item c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll -Force
Set-Acl c:\windows\system32\termsrv.dll $termsrv_dll_acl
Start-Service UmRdpService
Start-Service TermService
संपूर्ण स्क्रिप्ट कोड मेरे GitHub रिपॉजिटरी में https://github.com/maxbakhub/winposh/blob/main/termsrv_rdp_patch.ps1
पर उपलब्ध है।स्क्रिप्ट निष्पादित करने के लिए, इसे अपने कंप्यूटर पर डाउनलोड करें। वर्तमान सत्र के लिए पावरशेल निष्पादन नीति सेटिंग बदलें:
Set-ExecutionPolicy Bypass -Scope Process -Force
और स्क्रिप्ट चलाएँ:
C:\users\root\desktop\termsrv_rdp_patch.ps1
स्क्रिप्ट को Windows अद्यतन स्थापित करने के बाद तुरंत टर्म्सrv.dll फ़ाइल में परिवर्तन करने के लिए चलाया जा सकता है (आपको प्रत्येक अद्यतन स्थापना के बाद HEX संपादक में टर्म्सrv.dll फ़ाइल को संशोधित करने की आवश्यकता नहीं है)।
Windows 10 या 11 में कई RDP सत्रों को टर्म्सrv.dll फ़ाइल को बदलकर सक्षम करने की विधि का लाभ यह है कि एंटीवायरस इसका जवाब नहीं देते हैं (RDPWrap के विपरीत, जिसे कई एंटीवायरस द्वारा मैलवेयर/हैकटूल/ट्रोजन के रूप में पहचाना जाता है)।
मुख्य दोष यह है कि हर बार जब आप विंडोज 10 बिल्ड को अपग्रेड करते हैं (या मासिक संचयी अपडेट की स्थापना के दौरान टर्म्सआरवी.डीएलएल फ़ाइल के संस्करण को अपडेट करते समय) आपको हर बार टर्म्सआरवी.डीएलएल फ़ाइल को मैन्युअल रूप से संपादित करना होगा। और यदि आप RDPWrapper का उपयोग कर रहे हैं, तो आपको Windows अद्यतन स्थापित करने के बाद rdpwrap.ini फ़ाइल को भी अपडेट करना होगा।
इस लेख में, हमने देखा कि एक साथ आरडीपी उपयोगकर्ता कनेक्शन की संख्या पर प्रतिबंध को कैसे हटाया जाए और विंडोज के डेस्कटॉप संस्करणों पर एक मुफ्त टर्मिनल सर्वर चलाया जाए।