इस लेख में, हम RDS लाइसेंसिंग से संबंधित कई सामान्य मुद्दों पर गौर करेंगे, जब RDP क्लाइंट रिमोट डेस्कटॉप सर्विसेज होस्ट भूमिका के साथ इंस्टॉल किए गए विंडोज सर्वर से कनेक्ट नहीं कर सकते।
RDP क्लाइंट को RDS होस्ट से कनेक्ट करते समय लाइसेंसिंग त्रुटियां दिखाई दे सकती हैं यदि:
- RDS लाइसेंसिंग सर्वर जिससे आप क्लाइंट लाइसेंस (RDS CALs) प्राप्त करना चाहते हैं, रिमोट डेस्कटॉप सर्विसेज सेटिंग्स पर निर्दिष्ट नहीं है;
- RDS लाइसेंसिंग सर्वर के पास उपलब्ध CALs समाप्त हो गए हैं;
- RDP क्लाइंट समाप्त हो चुके अस्थायी RDS लाइसेंस के साथ कनेक्ट करने का प्रयास करता है;
रिमोट सत्र डिस्कनेक्ट हो गया क्योंकि इस कंप्यूटर के लिए कोई रिमोट डेस्कटॉप क्लाइंट एक्सेस लाइसेंस उपलब्ध नहीं हैं
पहले, क्लाइंट्स को लाइसेंस सर्वर से RDS CALs प्राप्त करने से संबंधित एक त्रुटि देखते हैं।
Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer. Please contact the server administrator.
एडमिनिस्ट्रेटिव मोड में RDSH सर्वर से कनेक्ट करें (mstsc.exe /admin) और RD Licensing Diagnoser टूल्स चलाएं। यदि सब कुछ सही ढंग से कॉन्फिगर किया गया है, तो आपको RDS लाइसेंसिंग सर्वर का नाम और लाइसेंस का प्रकार (Per User/Per Device) देखना चाहिए।
RD Licensing Manager कंसोल (licmgr.exe) का उपयोग करके RDS लाइसेंस सर्वर से कनेक्ट करें और जांचें कि आपके पास आवश्यक प्रकार (Per User या Per Device) के उपलब्ध मुफ्त लाइसेंस हैं। यदि आप मुफ्त RDS CALs से बाहर हो गए हैं, तो आपको एक नया CAL पैक खरीदना होगा, किसी के लाइसेंस जारी करने की प्रतीक्षा करनी होगी, या कंसोल से सीधे अनुपयोगी लाइसेंस रद्द करने होंगे (कंप्यूटर/उपयोगकर्ता पर राइट-क्लिक करें और Revoke License चुनें)।
इस उदाहरण में, आप देख सकते हैं कि मुफ्त RDS CALs हैं, और वे उपयोगकर्ताओं को जारी किए गए हैं (Issued = 44)।
संकेत. यदि आपका RDSH सर्वर वर्कग्रुप में डिप्लॉय किया गया है (AD डोमेन में नहीं), तो आप इस पर Per User RDS लाइसेंस का उपयोग नहीं कर सकते। कनेक्ट होने पर, आपके उपयोगकर्ताओं को हमेशा एक अस्थायी स्थानीय Per Device लाइसेंस प्राप्त होगा।सबसे अधिक संभावना है, इस मामले में क्लाइंट कंप्यूटर आपके RDSH सर्वर से समाप्त हो चुके अस्थायी RDP लाइसेंस के साथ कनेक्ट करने का प्रयास कर रहा है (यदि क्लाइंट के पहली बार कनेक्ट होने पर आपका RDS लाइसेंस सर्वर अनुपलब्ध था, तो क्लाइंट को 180 दिनों के लिए अस्थायी RDP लाइसेंस जारी किया गया था)। इस मामले में, आपको क्लाइंट डिवाइस पर रजिस्ट्री में इस समाप्त हो चुके लाइसेंस को रीसेट करने की आवश्यकता है।
क्लाइंट कंप्यूटर (इस उदाहरण में विंडोज 10) पर निम्न कार्य करें:
- रजिस्ट्री एडिटर शुरू करें (
regedit.exe); - रजिस्ट्री कुंजी HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing हटाएं;
- रजिस्ट्री एडिटर बंद करें और
mstsc.exe(रिमोट डेस्कटॉप कनेक्शन) को एडमिनिस्ट्रेटर के रूप में चलाएं; - अपने RDS सर्वर से कनेक्ट करें। इस मामले में, MSLicensing रजिस्ट्री कुंजी स्वचालित रूप से फिर से बनाई जाएगी, और कंप्यूटर को एक नया RDP लाइसेंस प्राप्त होगा।
यदि आपने mstsc.exe को एडमिनिस्ट्रेटर अनुमतियों के साथ नहीं चलाया, तो किसी भी RDP कनेक्शन के लिए त्रुटि दिखाई देगी:
The remote computer disconnected the session because of an error in the licensing protocol. Please try connecting to the remote computer again or contact your server administrator.
रिमोट सत्र डिस्कनेक्ट हो गया क्योंकि लाइसेंस प्रदान करने के लिए कोई रिमोट डेस्कटॉप लाइसेंस सर्वर उपलब्ध नहीं हैं
एक ग्राहक को विंडोज सर्वर 2012 R2 पर तैनात RDS सर्वरों के फार्म के साथ समस्या का सामना करना पड़ा। किसी कारण से, RDS सर्वर ने उपयोगकर्ताओं को टर्मिनल लाइसेंस जारी करना बंद कर दिया, हालांकि लाइसेंस सर्वर भूमिका इंस्टॉल और कॉन्फिगर की गई थी, और RDP CALs सक्रिय थे।
जब कोई उपयोगकर्ता RDP के माध्यम से टर्मिनल सर्वर से कनेक्ट करने का प्रयास करता है, तो निम्न त्रुटि दिखाई देती है:
The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license. Please contact the server administrator.
एडमिनिस्ट्रेटिव मोड में सर्वर कंसोल से कनेक्ट करें (mstsc /admin)। सर्वर मैनेजर खोलें, और RDS सेटिंग्स पर जाएं (Remote Desktop Services -> Deployment Overview -> Tasks -> Edit Deployment Properties)। सुनिश्चित करें कि RDSH कॉन्फिगरेशन में सही रिमोट डेस्कटॉप लाइसेंस सर्वर और RDS CAL प्रकार (Per Device या Per User) निर्दिष्ट हैं।
आप PowerShell के माध्यम से RDS लाइसेंसिंग सर्वर सेटिंग्स भी जांच सकते हैं:
Get-RDLicenseConfiguration
जैसा कि आप देख सकते हैं, कॉन्फिगरेशन में LicenseServer निर्दिष्ट है, और PerUser लाइसेंसिंग प्रकार उपयोग किया जाता है।
जांचें कि RDSH होस्ट से RDS लाइसेंसिंग सर्वर तक एक्सेस करते समय निम्न पोर्ट फ़ायरवॉल द्वारा अवरुद्ध नहीं हैं: TCP 135, UDP 137, UDP 138, TCP 139, TCP 445, TCP 49152–65535 (RPC रेंज)। यदि RDS लाइसेंस सर्वर उपलब्ध नहीं है, तो लाइसेंस डायग्नोसर त्रुटि प्रदर्शित करेगा:
License server rdslic_hostname is not available. This could be caused by network connectivity problems, the Remote Desktop Licensing service is stopped on the license server, or RD Licensing isn't available.
120 दिनों की RDS ग्रेस पीरियड रीसेट करें (L$RTMTIMEBOMB)
RDS होस्ट पर इवेंट व्यूअर में इवेंट्स पर ध्यान से नज़र डालें। शायद इस तरह की त्रुटि है:
EventID: 1128 Source: TerminalServices-RemoteConnectionManager The RD Licensing grace period has expired and the service has not registered with a license server with installed licenses. A RD Licensing server is required for continuous operation. A Remote Desktop Session Host server can operate without a license server for 120 days after initial start up.
RD License Diagnoser सबसे अधिक संभावना एक त्रुटि भी प्रदर्शित करेगा:
The grace period for the Remote Desktop Session Host server has expired, but the RD Session Host server hasn't been configured with any license servers. Connections to the RD Session Host server will be denied unless a license server is configured for the RD Session Host server.
इसका मतलब है कि आपके RDSH सर्वर के लिए ग्रेस पीरियड समाप्त हो गया है, और आपको ग्रेस मोड बढ़ाने की आवश्यकता है, या होस्ट को RDS लाइसेंस सर्वर पर सक्रिय करना होगा।
RDS ग्रेस पीरियड आपको विंडोज सर्वर पर रिमोट डेस्कटॉप सर्विसेज का 120 दिनों के लिए मुफ्त में उपयोग करने की अनुमति देता है। सबसे अधिक संभावना है, जब RDSH में एडमिनिस्ट्रेटर के रूप में लॉग इन करते हैं, तो आपने एक त्रुटि देखी:
Licensing mode for the Remote Desktop Session Host is not configured. Remote Desktop Service will stop working in 86 days.
RDS ग्रेस पीरियड के अंत से पहले के दिनों की संख्या एलिवेटेड कमांड प्रॉम्प्ट से पता लगाई जा सकती है:
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays
ध्यान दें कि DaysLeft = 0। इसका मतलब है कि इस RDSH होस्ट पर ग्रेस पीरियड समाप्त हो गया है।
RDS में ग्रेस पीरियड बढ़ाने के लिए, आपको सर्वर पर रजिस्ट्री पैरामीटर को हटाना होगा जो ग्रेस पीरियड लाइसेंसिंग समय निर्धारित करता है। वह तारीख जो सर्वर के लिए RDS ग्रेस पीरियड निर्धारित करती है, रजिस्ट्री में reg_binary पैरामीटर L$RTMTIMEBOMB (काफी मजेदार नाम –TIME BOMB….) में संग्रहीत होती है जो निम्न रजिस्ट्री कुंजी में स्थित है:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod
आपको रजिस्ट्री से L$RTMTIMEBOMB पैरामीटर को हटाना होगा। हालांकि, एडमिनिस्ट्रेटर के पास ऐसा करने के लिए पर्याप्त अनुमति नहीं है।
Unable to delete all specified values.
इस रजिस्ट्री पैरामीटर को हटाने के लिए, आपको पैरेंट कुंजी अनुमतियां खोलनी होंगी और अपने खाते को कुंजी के मालिक का विशेषाधिकार देना होगा। फिर Administrators ग्रुप के लिए Full Control अनुमतियां सेट करें (मैं प्रक्रिया का विस्तार से वर्णन नहीं करूंगा)।
अब, L$RTMTIMEBOMB पैरामीटर पर राइट-क्लिक करें और इसे हटाएं।
अपने RDSH सर्वर को रीस्टार्ट करें, और RDP क्लाइंट का उपयोग करके इससे कनेक्ट करें। रिमोट डेस्कटॉप लाइसेंसिंग मैनेजर का उपयोग करके सुनिश्चित करें कि RDS CAL सफलतापूर्वक जारी किया गया है।
यदि RDS CAL प्राप्त नहीं होता है, तो जांचें कि क्या इवेंट व्यूअर में कोई इवेंट है:
Event ID: 1130 Source: TerminalServices-RemoteConnectionManager The Remote Desktop Session Host server does not have a Remote Desktop license server specified. To specify a license server for the Remote Desktop Session Host server, use the Remote Desktop Session Host Configuration tool.
इस PowerShell कमांड का उपयोग करके सुनिश्चित करें कि RDS लाइसेंसिंग सर्वर सेट है:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
जैसा कि आप देख सकते हैं, RDS लाइसेंसिंग सर्वर सेट नहीं है (SpecifiedLSList खाली है)। निम्न कमांड के साथ RD लाइसेंसिंग सर्वर को जबरन सेट करें:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.SetSpecifiedLicenseServerList("lon-rdslic.woshub.com")
आप ग्रुप पॉलिसी GPO का उपयोग करके लाइसेंस सर्वर नाम और लाइसेंस प्रकार भी सेट कर सकते हैं। यदि आप लोकल GPO का उपयोग कर रहे हैं, तो gpedit.msc चलाएं और सेक्शन कंप्यूटर कॉन्फिगरेशन -> एडमिनिस्ट्रेटिव टेम्पलेट्स -> विंडोज कंपोनेंट्स -> रिमोट डेस्कटॉप सर्विसेज -> रिमोट डेस्कटॉप सेशन होस्ट -> लाइसेंसिंग पर जाएं। निम्न विकल्प सेट करें:
- Use the specified Remote Desktop license servers
- Set the Remote licensing mode
RDS होस्ट अब RDS लाइसेंसिंग सर्वर से लाइसेंस प्राप्त करने और उन्हें आपके RDP उपयोगकर्ताओं को जारी करने में सक्षम होगा।