เซสชันระยะไกลถูกตัดการเชื่อมต่อ: ไม่มีเซิร์ฟเวอร์สิทธิ์ใช้งานเดสก์ท็อประยะไกล/สิทธิ์การใช้งานการเข้าถึงไคลเอ็นต์ที่พร้อมใช้งาน
ในบทความนี้ เราจะพิจารณาปัญหาทั่วไปหลายประการที่เกี่ยวข้องกับการให้สิทธิ์การใช้งาน RDS เมื่อไคลเอ็นต์ RDP ไม่สามารถเชื่อมต่อกับ Windows Server ที่มีการติดตั้งบทบาทโฮสต์บริการเดสก์ท็อประยะไกล
ข้อผิดพลาดในการให้สิทธิ์ใช้งานเมื่อเชื่อมต่อไคลเอนต์ RDP กับโฮสต์ RDS อาจปรากฏขึ้นหาก:
เซิร์ฟเวอร์สิทธิ์การใช้งาน RDS ที่คุณต้องการรับสิทธิ์การใช้งานไคลเอนต์ (RDS CAL) ไม่ได้ระบุในการตั้งค่าบริการเดสก์ท็อประยะไกล
เซิร์ฟเวอร์การให้สิทธิ์ RDS ไม่มี CAL ที่พร้อมใช้งาน
ไคลเอนต์ RDP พยายามเชื่อมต่อกับใบอนุญาต RDS ชั่วคราวที่หมดอายุ
เซสชันระยะไกลถูกตัดการเชื่อมต่อเนื่องจากไม่มีสิทธิ์การใช้งานการเข้าถึงไคลเอ็นต์เดสก์ท็อประยะไกลสำหรับคอมพิวเตอร์เครื่องนี้
ก่อนอื่น มาดูข้อผิดพลาดที่เกี่ยวข้องกับไคลเอนต์ที่ได้รับ RDS CAL จากเซิร์ฟเวอร์ใบอนุญาต
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 และประเภทของสิทธิ์ใช้งาน (ต่อผู้ใช้/ต่ออุปกรณ์)
เชื่อมต่อกับเซิร์ฟเวอร์สิทธิ์การใช้งาน RDS โดยใช้คอนโซลตัวจัดการสิทธิ์ใช้งาน RD (
licmgr.exe) และตรวจสอบว่าคุณมีใบอนุญาตฟรีประเภทที่จำเป็น (ต่อผู้ใช้หรือต่ออุปกรณ์) หาก RDS CAL ฟรีของคุณหมด คุณต้องซื้อชุด CAL ใหม่ รอให้ผู้อื่นออกใบอนุญาต หรือเพิกถอนใบอนุญาตที่ไม่ได้ใช้โดยตรงจากคอนโซล (คลิกขวาที่คอมพิวเตอร์/ผู้ใช้ แล้วเลือก เพิกถอนใบอนุญาต<).
ในตัวอย่างนี้ คุณจะเห็นว่ามี RDS CAL ฟรี และออกให้กับผู้ใช้ (ออกแล้ว=44)
คำใบ้ หากเซิร์ฟเวอร์ RDSH ของคุณถูกปรับใช้ใน เวิร์กกรุ๊ป (ไม่ใช่ในโดเมน AD) คุณจะไม่สามารถใช้ใบอนุญาต RDS ต่อผู้ใช้กับเซิร์ฟเวอร์นั้นได้ เมื่อเชื่อมต่อแล้ว ผู้ใช้ของคุณจะได้รับสิทธิ์ใช้งานชั่วคราวในเครื่องต่อหนึ่งอุปกรณ์เสมอ
เป็นไปได้มากว่า ในกรณีนี้ คอมพิวเตอร์ไคลเอนต์พยายามเชื่อมต่อกับเซิร์ฟเวอร์ RDSH ของคุณด้วยใบอนุญาต RDP ชั่วคราวที่หมดอายุ (หากเซิร์ฟเวอร์ใบอนุญาต RDS ของคุณไม่พร้อมใช้งานเมื่อไคลเอ็นต์เชื่อมต่อครั้งแรก ไคลเอ็นต์จะได้รับใบอนุญาต RDP ชั่วคราวเป็นเวลา 180 วัน) ในกรณีนี้ คุณต้องรีเซ็ตใบอนุญาตที่หมดอายุนี้ในรีจิสทรีบนอุปกรณ์ไคลเอนต์
ทำสิ่งต่อไปนี้บนคอมพิวเตอร์ไคลเอ็นต์ (Windows 10 ในตัวอย่างนี้):
เริ่มตัวแก้ไขรีจิสทรี (
regedit.exe);
ลบรีจิสตรีคีย์ HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
ปิดตัวแก้ไขรีจิสทรีและเรียกใช้
mstsc.exe(การเชื่อมต่อเดสก์ท็อประยะไกล) ในฐานะผู้ดูแลระบบ
เชื่อมต่อกับเซิร์ฟเวอร์ RDS ของคุณ ในกรณีนี้ คีย์ MSLicensing reg จะถูกสร้างขึ้นใหม่โดยอัตโนมัติ และคอมพิวเตอร์จะได้รับใบอนุญาต 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.เซสชันระยะไกลถูกตัดการเชื่อมต่อเนื่องจากไม่มีเซิร์ฟเวอร์สิทธิ์การใช้งานเดสก์ท็อประยะไกลที่พร้อมให้สิทธิ์ใช้งาน
ลูกค้ารายหนึ่งพบปัญหากับฟาร์มที่ปรับใช้ของเซิร์ฟเวอร์ RDS บน Windows Server 2012 R2 ด้วยเหตุผลบางอย่าง เซิร์ฟเวอร์ RDS ได้หยุดออกใบอนุญาตเทอร์มินัลให้กับผู้ใช้ แม้ว่าบทบาทเซิร์ฟเวอร์ใบอนุญาตจะได้รับการติดตั้งและกำหนดค่า และ RDP CAL ได้ถูกเปิดใช้งานแล้ว
เมื่อผู้ใช้พยายามเชื่อมต่อกับเซิร์ฟเวอร์เทอร์มินัลผ่าน 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 (บริการเดสก์ท็อประยะไกล -> ภาพรวมการปรับใช้ -> งาน -> แก้ไขการปรับใช้ คุณสมบัติ). ตรวจสอบให้แน่ใจว่าได้ระบุเซิร์ฟเวอร์ใบอนุญาตเดสก์ท็อประยะไกลที่ถูกต้องและประเภท RDS CAL (ต่ออุปกรณ์หรือต่อผู้ใช้) ในการกำหนดค่า RDSH
คุณยังสามารถตรวจสอบการตั้งค่าเซิร์ฟเวอร์สิทธิ์การใช้งาน RDS ผ่าน PowerShell:
Get-RDLicenseConfigurationอย่างที่คุณเห็น มีการระบุ LicenseServer ในการกำหนดค่า และมีการใช้ประเภทสิทธิ์ใช้งาน PerUser
ตรวจสอบว่าพอร์ตต่อไปนี้ไม่ถูกบล็อกโดยไฟร์วอลล์เมื่อเข้าถึงจากโฮสต์ RDSH ไปยัง RDS Licenseing Server:
TCP 135, UDP 137, UDP 138, TCP 139, TCP 445, TCP 49152-65535 (RPC range). หากไม่มีเซิร์ฟเวอร์ RDS License ตัววิเคราะห์ใบอนุญาตจะแสดงข้อผิดพลาด:
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.รีเซ็ตระยะเวลาผ่อนผัน RDS 120 วัน (L$RTMTIMEBOMB)
ดูเหตุการณ์อย่างละเอียดใน Event Viewer บนโฮสต์ RDS อาจมีข้อผิดพลาดเช่นนี้:
EventID: 1128
Source: TerminalServices-RemoteConnectionManagerThe 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 มักจะแสดงข้อผิดพลาด:
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 อนุญาตให้คุณใช้บริการเดสก์ท็อประยะไกลบน Windows Server ได้ฟรีเป็นเวลา 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.ในการลบพารามิเตอร์รีจิสทรีนี้ คุณต้องเปิดการอนุญาตคีย์หลักและให้สิทธิ์แก่เจ้าของคีย์แก่บัญชีของคุณ จากนั้นตั้งค่าสิทธิ์ควบคุมทั้งหมดสำหรับกลุ่มผู้ดูแลระบบ (ฉันจะไม่อธิบายกระบวนการโดยละเอียด)
ตอนนี้ คลิกขวาที่พารามิเตอร์ L$RTMTIMEBOMB แล้วลบทิ้ง
รีสตาร์ทเซิร์ฟเวอร์ RDSH ของคุณ และเชื่อมต่อโดยใช้ไคลเอนต์ RDP ตรวจสอบให้แน่ใจว่าได้ออก RDS CAL เรียบร้อยแล้วโดยใช้ Remote Desktop Licensing Manager
หากไม่ได้รับ 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.a-d.site")คุณยังสามารถตั้งชื่อเซิร์ฟเวอร์สิทธิ์การใช้งานและประเภทสิทธิ์การใช้งานโดยใช้ Group Policy GPO หากคุณใช้ GPO ในเครื่อง ให้เรียกใช้ gpedit.msc และไปที่ส่วน การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ส่วนประกอบของ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล -> การออกใบอนุญาต ตั้งค่าตัวเลือกต่อไปนี้:
ใช้เซิร์ฟเวอร์ใบอนุญาตเดสก์ท็อประยะไกลที่ระบุ
ตั้งค่าโหมดการออกใบอนุญาตระยะไกล
โฮสต์ RDS จะสามารถขอรับใบอนุญาตจากเซิร์ฟเวอร์ RDS Licensing และออกใบอนุญาตให้กับผู้ใช้ RDP ของคุณได้

















