Trong bài viết này, chúng tôi sẽ xem xét việc cài đặt, cấu hình và kích hoạt vai trò Remote Desktop Licensing trên Windows Server 2019 và 2016, cũng như cài đặt và kích hoạt giấy phép truy cập client RDS (CALs).
Tôi nhắc lại rằng sau khi cài đặt vai trò Remote Desktop Session Host, người dùng chỉ có thể sử dụng nó trong 120 ngày dùng thử (giấy phép đánh giá), và người dùng không thể kết nối đến máy chủ RDS sau đó. Theo quy tắc cấp phép Microsoft, tất cả người dùng hoặc thiết bị sử dụng tính năng RDS phải được cấp phép. Để đăng ký và cấp giấy phép Remote Desktop Client Access Licenses (RDS CALs), có một dịch vụ Windows riêng biệt trong vai trò RDS gọi là Remote Desktop License Server.
Cài Đặt Vai Trò Remote Desktop Licensing Trên Windows Server 2019/2016
Bạn có thể triển khai dịch vụ Remote Desktop License trên bất kỳ máy chủ miền nào. Không cần thiết phải cài đặt nó trên một trong các máy chủ trên farm RDSH.
Trước khi bắt đầu cài đặt, hãy thêm máy chủ mới vào nhóm bảo mật miền Terminal Server License Servers (hoặc đảm bảo bạn có quyền thay đổi thành viên nhóm này), nếu không, máy chủ sẽ không thể cấp RDS Per User CAL cho người dùng miền.
Bạn có thể cài đặt Remote Desktop Licensing bằng Server Manager. Để làm điều đó, chọn vai trò Remote Desktop Services trong Add Roles and Features Wizard.
Chọn Remote Desktop Licensing làm role service.
Còn lại là đợi cho đến khi cài đặt vai trò hoàn tất.
Dịch vụ RDS-Licensing được quản lý bằng console Remote Desktop Licensing Manager (licmgr.exe).
Trong Windows Server, dễ dàng hơn để cài đặt vai trò và tính năng bằng PowerShell. Để cài đặt dịch vụ RDS Licensing và RD Licensing Diagnoser, chỉ cần chạy một lệnh:
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
Để liệt kê các dịch vụ RDS đã cài đặt trên máy chủ, sử dụng lệnh:
Get-WindowsFeature -Name RDS* | Where installed
Kích Hoạt Máy Chủ RDS License Trên Windows Server
Để cấp giấy phép cho client RDP, máy chủ RDS License Server của bạn phải được kích hoạt. Để làm điều đó, hãy mở Remote Desktop Licensing Manager (licmgr.exe), chuột phải vào tên máy chủ của bạn, và chọn Activate Server.
Wizard kích hoạt máy chủ cấp phép RDS sẽ bắt đầu. Ở đây bạn sẽ cần chọn phương pháp kích hoạt bạn thích. Nếu máy chủ của bạn kết nối Internet, nó có thể tự động kết nối đến máy chủ Microsoft và kích hoạt máy chủ cấp phép RDS. Nếu không có truy cập Internet trực tiếp từ máy chủ, bạn có thể kích hoạt máy chủ bằng trình duyệt web hoặc qua điện thoại.
Sau đó bạn phải điền một số thông tin về công ty của bạn (một số trường là bắt buộc).
Còn lại là nhấn nút Finish.
Nếu bạn chuột phải tên máy chủ trong console và chọn Review Configuration, bạn có thể xác minh rằng máy chủ RDS License đã được kích hoạt và có thể được sử dụng để kích hoạt client RDSH trong miền của bạn.
This license server is a member of the Terminal Server License Servers group in Active Directory. This license server will be able to issue RDS Per User CALs to users in the domain, and you will be able to track the usage of RDS Per User CALs.
This license server is registered as a service connection point (SCP) in Active Directory Domain Services.
RDS CALs: Loại Giấy Phép Truy Cập Client Remote Desktop
Mỗi người dùng hoặc thiết bị kết nối đến Remote Desktop Session hosts phải có giấy phép truy cập client (CAL). Có hai loại RDS CALs:
- Per-Device CAL – là loại giấy phép vĩnh viễn được gán cho một máy tính (thiết bị) kết nối đến máy chủ RDS nhiều hơn một lần (khi thiết bị kết nối lần đầu, một giấy phép tạm thời được cấp cho nó). Các giấy phép này không phải là concurrent, tức là, nếu bạn có 10 giấy phép Per Device, chỉ 10 máy chủ có thể kết nối đến máy chủ RDS của bạn. Giấy phép OVL RDS CAL hiện tại được gọi là:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL; - Per-User CAL – là loại giấy phép cho phép một người dùng kết nối đến máy chủ RDS từ bất kỳ số lượng máy tính/thiết bị nào. Loại giấy phép này được liên kết với người dùng Active Directory và được cấp không vĩnh viễn, mà trong một khoảng thời gian cụ thể. Giấy phép được cấp cho khoảng thời gian 52 đến 89 ngày (số ngẫu nhiên). Giấy phép Open Value loại này hiện tại được gọi là
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL. Nếu bạn cố gắng sử dụng RDS 2019 Per User CAL trong workgroup (không phải miền), thì máy chủ RDSH sẽ buộc kết thúc phiên người dùng mỗi 60 phút với thông báo: “Remote Desktop License Issue: There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes”. Do đó, cho máy chủ RDS trong môi trường Windows Workgroup, bạn cần chỉ sử dụng cấp phép thiết bị (Per Device RDS CALs).
Lưu ý. Chúng tôi nên lưu ý rằng 2016 RDS CAL chỉ có thể được cài đặt chỉ trên máy chủ cấp phép chạy Windows Server 2016 hoặc 2019. Việc cài đặt RDS CALs lên các phiên bản Windows Server trước đó không được hỗ trợ. Do đó, bạn không thể cài đặt 2016 RDS CALs trên máy chủ cấp phép Windows Server 2012 R2.
Khi cố gắng thêm RDS CALs 2019 mới trên Windows Server 2016, một lỗi sẽ xuất hiện:
RD Licensing Manager The license code is not recognized. Ensure that you have entered the correct license code.
Cài Đặt RDS CALs Trên Windows Server 2019/2016
Bây giờ bạn phải cài đặt gói giấy phép client Remote Desktop (RDS CAL) bạn đã mua trên License Server.
Chuột phải máy chủ của bạn trong Remote Desktop Licensing Manager và chọn Install Licenses.
Chọn phương pháp kích hoạt (tự động, trực tuyến, hoặc qua điện thoại) và chương trình giấy phép (trong trường hợp của chúng tôi, là Enterprise Agreement).
Nhiều số thỏa thuận doanh nghiệp cho RDS đã bị rò rỉ trên Internet. Tôi nghĩ sẽ không có vấn đề gì để tìm thấy các số (4965437), bạn thậm chí không cần tìm crack hoặc activator rds.
Các bước tiếp theo của wizard phụ thuộc vào chương trình giấy phép bạn đã chọn. Trong trường hợp Enterprise Agreement, bạn phải chỉ định số của nó. Nếu bạn đã chọn License Pack (Retail Purchase), hãy nhập product key 25 ký tự bạn nhận được từ Microsoft hoặc đối tác.
Chỉ định phiên bản sản phẩm (Windows Server 2019/2016), loại giấy phép (RDS Per user CAL), và số lượng giấy phép sẽ được cài đặt trên máy chủ.
Sau đó, máy chủ có thể cấp giấy phép (RDS CAL) cho client.
Bạn có thể chuyển đổi RDS User CALs sang Device CALs (và ngược lại) bằng mục menu Convert Licenses trong console RD Licensing Manager.
Nếu bạn đã hết giấy phép RDS miễn phí, bạn có thể thu hồi RDS Device CALs đã cấp trước đó cho máy tính không hoạt động bằng script PowerShell sau:
$RevokedPCName=”lon-bc1-123”
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {($_.keypacktype -ne 0) -and ($_.keypacktype -ne 4) -and ($_.keypacktype -ne 6)}
$licensepacks.TotalLicenses
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {$_.licensestatus -eq 2}
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $RevokedPCName
$RevokePC.Revoke()
Tối đa 20% Per-Device RDS CALs có thể bị thu hồi. Per-User CALs không thể bị thu hồi.
Báo Cáo Sử Dụng RDS CAL
Trong RDS License Console, bạn có thể tạo báo cáo sử dụng giấy phép. Để làm điều đó, chọn Create Report -> CAL Usage từ menu ngữ cảnh của máy chủ.
Tuy nhiên, tôi thích sử dụng PowerShell để báo cáo sử dụng RDS CAL. Script sau sẽ hiển thị số lượng giấy phép còn lại trong tất cả các gói RDS CAL:
Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$licenses = (Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\* | Where-Object Name -Like "-Per User-*").Name
$total=0;
$issued=0;
foreach ($license in $licenses) {
$count=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\TotalLicenses).CurrentValue
$total= $total + $count
$count2=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\IssuedLicensesCount).CurrentValue
$issued= $issued + $count2
}
$available = $total - $issued
Write-Host "Total Licenses available: $available"
Bạn có thể chạy script PowerShell này qua Zabbix và đặt cảnh báo nếu số lượng giấy phép còn lại nhỏ hơn, ví dụ, 5.
Script PowerShell sau sẽ cho phép bạn tạo báo cáo Per User CAL:
Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$path = “C:\Reports\RDS_CAL_Usage.csv”
$fileName = (Invoke-WmiMethod Win32_TSLicenseReport -Name GenerateReportEx).FileName
$fileEntries = (Get-WmiObject Win32_TSLicenseReport | Where-Object FileName -eq $fileName).FetchReportEntries(0,0).ReportEntries
$objArray = @()
foreach($entry in $fileEntries){
$objArray += $entry | select User, ProductVersion, CALType, ExpirationDate
$objArray[-1].User = $objArray[-1].User.Split('\') | select -Last 1
$time = $objArray[-1].ExpirationDate.Split('.') | select -first 1
$objArray[-1].ExpirationDate = [datetime]::ParseExact($time, "yyyyMMddHHmmss", $null)
}
$objArray | Export-Csv -Path $path -Delimiter ',' -NoTypeInformation
Cách Xóa RDS CALs Khỏi Máy Chủ RD License?
Nếu bạn muốn di chuyển các gói giấy phép RDS CAL từ máy chủ Remote Desktop licensing này sang máy chủ khác, bạn có thể gỡ bỏ gói giấy phép RDS CAL đã cài đặt từ máy chủ cấp phép bằng PowerShell.
Sử dụng cmdlet sau, bạn có thể liệt kê tất cả các gói RDS CAL đã cài đặt trên máy chủ:
Get-WmiObject Win32_TSLicenseKeyPack|select-object KeyPackId,ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses |ft
Tìm giá trị KeyPackId cho gói RDS CAL bạn muốn xóa và chạy lệnh:
wmic /namespace:\\root\CIMV2 PATH Win32_TSLicenseKeyPack CALL UninstallLicenseKeyPackWithId yourKeyPackId
Bạn cũng có thể xóa hoàn toàn tất cả CALs bằng cách tạo lại cơ sở dữ liệu RDS license. Để làm điều này, dừng dịch vụ Remote Desktop Licensing:
Stop-Service TermServLicensing
Đổi tên file C:\Windows\System32\lserver\TLSLic.edb thành C:\Windows\System32\lserver\TLSLic.edb_bak và khởi động dịch vụ:
Start-Service TermServLicensing
Sau đó, tất cả giấy phép RDS CAL sẽ bị xóa, và bạn phải kích hoạt lại chúng.
Cấu Hình Giấy Phép RDS Trên RD Session Hosts
Sau khi máy chủ RDS License được kích hoạt và chạy, bạn có thể cấu hình lại RD Session Host để lấy giấy phép CAL từ máy chủ này. Bạn có thể đặt loại giấy phép và chỉ định tên máy chủ cấp phép từ Server Manager GUI, sử dụng PowerShell, hoặc Group Policy.
Để thay đổi tên/địa chỉ máy chủ cấp phép trên máy chủ RDS, mở Server Manager -> Remote Desktop Services -> Collections. Trong menu “Tasks” góc trên bên phải chọn “Edit Deployment Properties”.
Trong thuộc tính triển khai, đi đến tab RD Licensing, chọn chế độ cấp phép Remote Desktop, và đặt máy chủ RDS license. Nhấn Add -> Ok.
Nếu loại cấp phép không được đặt trên máy chủ RDSH, bạn sẽ nhận được lỗi “Licensing mode for the Remote Desktop Session Host is not configured”.
Bạn có thể thay đổi địa chỉ máy chủ RDS license và loại CAL bằng PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Sau đó chỉ định loại giấy phép bạn cần:
$obj.ChangeMode(4)
Lưu ý. Nhập 4 nếu máy chủ phải sử dụng loại cấp phép Per User, và 2, nếu là Per Device.
Sau đó chỉ định tên máy chủ RDS License:
$obj.SetSpecifiedLicenseServerList("rdslic2016.woshub.com")
Và kiểm tra cài đặt hiện tại:
$obj.GetSpecifiedLicenseServerList()
Nếu bạn muốn gán tham số máy chủ RDS licensing qua Group Policy, bạn cần tạo GPO mới và liên kết nó với OU chứa máy chủ RDS (hoặc bạn có thể chỉ định tên máy chủ RDS licensing bằng Local Group Policy Editor – gpedit.msc). Cài đặt RD licensing nằm trong phần GPO sau: Computer Configuration -> Policies -> Admin Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing.
Có hai cài đặt Remote Desktop mà chúng ta cần cấu hình:
- Use the specified Remote Desktop license servers – địa chỉ License Server được đặt;
- Set the Remote Desktop licensing mode – chọn loại giấy phép RDS CAL.
Máy chủ RDSH sử dụng các cổng mạng sau để lấy giấy phép RDS từ máy chủ RDS Licensing. Đảm bảo rằng chúng không bị chặn bởi firewall (hoặc Windows Defender Firewall):
- TCP/135 – Microsoft RPC;
- UDP/137 – NetBIOS Datagram Service;
- UDP/138 – NetBIOS Name Resolution;
- TCP/139 – NetBIOS Session Service;
- TCP/445 – SMB;
- TCP/49152–65535 – dải địa chỉ RPC động
Bạn có thể kiểm tra cổng mở bằng công cụ PortQry hoặc cmdlet Test-NetConnection.
Hãy thử kiểm tra trạng thái RD License Server và số lượng giấy phép đã cấp bằng công cụ Remote Desktop Licensing Diagnoser (lsdiag.msc hoặc Administrative Tools -> Remote Desktop Services -> RD Licensing Diagnoser). RD Licensing Diagnoster có thể được cài đặt trên máy chủ RDSH bằng Server Manager (Features -> Remote Server Administration Tools -> Role Administration Tools -> Remote Desktop Services Tools -> Remote Desktop Licensing Diagnoser Tools).
Nếu máy chủ RDSH không được cấu hình để sử dụng máy chủ RDS license, các cảnh báo sau sẽ xuất hiện trong console Licensing Diagnoser:
Licenses are not available for this Remoter Desktop Session Host server, and RD Licensing Diagnose has identified licensing problems for the RDSH.
Number of licenses available for clients: 0
The licensing mode for the Remote Desktop Session Host server is not configured.
Remote Desktop Session Host server is within its grace period, but the RD Session Host server has not been configured with any license server.
Nếu bạn cài đặt RDSH trên phiên bản Windows Server Evaluation, đừng quên chuyển đổi nó sang phiên bản đầy đủ theo hướng dẫn. Không chuyển đổi, dịch vụ RDSH trên máy chủ như vậy sẽ chỉ hoạt động 120 ngày, ngay cả khi bạn trỏ nó đến máy chủ RDS license đã kích hoạt.
Nếu không có cảnh báo, và bạn thấy thông báo “RD Licensing Diagnoser did not identify any licensing problems for the Remote Desktop Session Host server”, thì máy chủ RDSH có thể nhận thành công RDS CAL cho người dùng và/hoặc thiết bị từ xa.
Lưu ý. Trong trường hợp của chúng tôi, sau khi chúng tôi chỉ định địa chỉ License Server mới, lỗi sau bắt đầu xuất hiện trên client RDP: “The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license”. Vấn đề có thể được giải quyết bằng cách xóa khóa L$RTMTIMEBOMB từ registry trên máy chủ RDSH.