Khi cấu hình RDSH node mới trong RDS farm chạy Windows Server 2012 R2/2016/2019, có thể gặp cảnh báo popup system tray:
Licensing mode for the Remote Desktop Session Host is not configured. Remote Desktop Service will stop working in 104 days. On the RD Connection Broker server, use Server Manager to specify the Remote Desktop licensing mode and the license server.
Theo thông báo, RDS Host chạy trong grace period (120 ngày dùng Remote Desktop Session Host không cần activate RDS license). Hết grace period, user không kết nối được RDSH, lỗi system tray:
Remote Desktop Services will stop working because this computer is past grace period and has not contacted at least a valid Windows Server 2012 license server. Click this message to open RD Session Host Server Configuration to use Licensing Diagnosis.Đã mô tả vấn đề tương tự trong bài lỗi RDS "The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license", nhưng hoàn cảnh khác ở đây.
Chẩn đoán chính xác hơn, chạy tool RD Licensing Diagnoser — lsdiag.msc (Administrative Tools → Remote Desktop Services → RD Licensing Diagnoser). Cửa sổ hiển thị lỗi:
Licenses are not available for the Remote Desktop Session Host server, and RD Licensing Diagnoser has identified licensing problem for the RD Session Host server. Licensing mode for the Remote Desktop Session Host is not configured. The Remote Desktop Session Host server is within its grace period, but the Session Host server has not been configured with any license server.
Như thấy, không có license cho client vì licensing mode chưa set.
Có nghĩa admin không chỉ định RDS Licensing Server và/hoặc licensing mode. Phải làm ngay cả khi licensing type đã chỉ định khi deploy RDS host (Configure the deployment → RD Licensing → Select the Remote Desktop licensing mode).
Kiểm tra RDS license server đã set bằng PowerShell: $obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
Lưu ý. Cmdlet Get-RDLicenseConfiguration có thể trả về dữ liệu khác, sai.
Nếu RDS license server chưa set, chỉ định bằng lệnh: $obj.SetSpecifiedLicenseServerList("uk-rdslic1.woshub.com")
Nếu không nhớ server nào cài role RD License, hiển thị danh sách tất cả RDS Licensing server đăng ký trong AD domain dùng Get-ADObject từ module PowerShell ActiveDirectory: Get-ADObject -Filter {objectClass -eq 'serviceConnectionPoint' -and Name -eq 'TermServLicensing'}
Có vài phương pháp force set RDS licensing mode.
Qua registry: Tại key HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core đổi giá trị DWORD parameter LicensingMode từ 5 thành:
- 2 — nếu dùng licensing mode Per Device RDS;
- 4 — nếu dùng licensing Per User.
Thay đổi registry thủ công qua regedit.exe hoặc lệnh PowerShell từ module quản lý registry: # Specify the RDS licensing type: 2 - Per Device CAL, 4 - Per User CAL
$RDSCALMode = 2
# RDS Licensing host name
$RDSlicServer = "uk-rdslic1.woshub.com"
# Set server name và licensing type trong registry
New-Item "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers"
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers -Value $RDSlicServer -PropertyType "MultiString"
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\" -Name "LicensingMode" -Value $RDSCALMode
Sau thay đổi, restart RDSH server.
Cũng cấu hình tham số RDS license server qua GPO (local hoặc domain policy). Nếu RDS server trong workgroup (không join AD domain), dùng local Group Policy Editor gpedit.msc. Đi đến Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Licensing.
Cần 2 policy:
- Use the specified Remote Desktop license servers — enable policy, chỉ định địa chỉ RDS license server. Nếu license server chạy trên cùng server, nhập
127.0.0.1; - Set the Remote Desktop licensing mode — chọn licensing mode. Ví dụ Per User.
Sau restart server, mở RD Licensing Diagnoser kiểm tra số RDS license available và licensing mode đã chọn.
Nếu dùng firewall trên mạng, phải mở port từ RDSH host đến RDS licensing server — TCP:135, UDP:137, UDP:138, TCP:139, TCP:445, TCP:49152–65535 (RPC range). Kiểm tra port mở dùng Test-NetConnection cmdlet. Nếu port đóng trên Windows Defender Firewall local, mở port bằng cmdlet PowerShell từ module NetSecurity.
Cũng lưu ý: nếu Windows Server 2012 R2 và CAL cho RDS 2012 R2 cài trên RD Licensing Server, không cài được RDS CAL license cho Windows Server 2016/2019. Lỗi "Remote Desktop Licensing mode is not configured" vẫn hiện dù chỉ định đúng license type và RDS license server name. Phiên bản Windows Server cũ không hỗ trợ RDS CAL cho phiên bản mới.
Lúc này RD License Diagnoser hiển thị:
The Remote Desktop Session Host is in Per User licensing mode and no Redirector Mode, but license server does not have any installed license with the following attributes: Product version: Windows Server 2016 Use RD Licensing Manager to install the appropriate licenses on the license server.
Phải upgrade phiên bản Windows Server trên RDS license server (hoặc deploy RD License host mới). Phiên bản Windows Server mới hơn (ví dụ WS 2019) hỗ trợ RDS CAL cho tất cả phiên bản Windows Server trước.
Lưu ý. Nếu RDS server trong workgroup, licensing report không tạo. Tuy nhiên terminal RDS license vẫn cấp đúng cho client/device. Phải tự monitor số RDS CAL còn lại.