Bài viết này mô tả cách cài đặt và cấu hình vai trò terminal server Remote Desktop Session Host trong workgroup (không có domain Active Directory) và không có vai trò bổ sung nào (Connection Broker, Remote Desktop Web Access, RDS Gateway). Đây sẽ là triển khai RDS single server trên Windows Server 2019/2022.
Windows Server với vai trò RDSH (Remote Desktop Session Host) cho phép nhiều user kết nối đến server đồng thời qua RDP (mặc định, chỉ 2 kết nối Remote Desktop quản trị được phép trên Windows Server). Phiên riêng được tạo cho mỗi user, và họ truy cập môi trường desktop cá nhân.Nếu bạn định dùng host RDS riêng trong workgroup, lưu ý chức năng bị giới hạn. Nó không thể scale thành RDS farm đầy đủ, không tạo collection riêng hoặc RemoteApp, không có Connection Broker, không dùng User Profile Disks, không có công cụ quản trị tập trung, dịch vụ RDS không khả dụng cho user trong quá trình bảo trì nếu host ở chế độ drain.
Cách Cài Đặt Vai Trò Remote Desktop Services Trên Windows Server 2019/2022?
Giả sử bạn đã cài Windows Server và cấu hình cài đặt cơ bản (địa chỉ IP, tên server, thời gian/ngày, cài cập nhật, v.v.). Sau đó bạn có thể cài vai trò RDS. Bạn có thể dùng Server Manager hoặc PowerShell.
Để cài RDS bằng Server Manager, chọn Remote Desktop Session Host và Remote Desktop Licensing trong Role-based or Feature-based installation -> Server roles -> Remote Desktop Services trong thành phần RDS (đồng ý cài RSAT feature để quản lý vai trò).
Bạn cũng có thể cài vai trò Windows Server bằng PowerShell:
Install-WindowsFeature -Name RDS-Licensing, RDS-RD-Server –IncludeManagementTools
Kiểm tra vai trò RDS nào đã cài trên server:
Get-WindowsFeature -Name RDS* | Where installed

Khởi động lại server:
Restart-Computer
Cấu Hình Vai Trò Remote Desktop Licensing và Thêm RDS License (CALs)
Bước tiếp theo là cấu hình vai trò Remote Desktop Licensing, cung cấp cấp phép cho kết nối RDP user. Bạn có thể cài và kích hoạt Remote Desktop Licensing trên host này (nếu chỉ có một host trong mạng) hoặc đặt vai trò RDLicensing trên server khác. Một server với vai trò RDS Licensing có thể cấp license cho bất kỳ số lượng host RDS.
Nếu quyết định dùng server RDLicensing cục bộ, kích hoạt host RDS Licensing và cài client license (RDS CALs) theo hướng dẫn này.
Trong workgroup, bạn nên dùng RDS CALs Per Device. Nếu server cấp phép chỉ cấp license Per User, user sẽ thấy lỗi sau khi kết nối đến server qua RDP:Remote Desktop License Issue There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes.

Cấu Hình Remote Desktop Session Host Trong Workgroup
Đi đến Control Panel -> System and Security -> Administrative Tools -> Remote Desktop Services -> Remote Desktop Licensing Diagnoser. Lưu ý server chưa cấu hình nhận RDS CAL từ licensing server. Thông điệp sau chứng minh:
- The licensing mode for the Remote Desktop Session Host server is not configured
- Number of licenses available for clients: 0
Nếu không trỏ RDSH server đến server RDS licensing cấp CAL cho user, server sẽ ở chế độ trial. Ở chế độ này, dịch vụ RDS hoạt động 120 ngày (mỗi kết nối, bạn thấy thông báo khay hệ thống: “The Remote Desktop service will stop working in xxx days”). Sau khi hết grace period, user không kết nối được RDS do lỗi:
Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer.
Nhược điểm chính của Remote Desktop Services trên Windows Server 2019 trong workgroup (không domain), là bạn không có công cụ quản trị thuận tiện để quản lý vai trò RDS. Bạn phải cấu hình mọi cài đặt RDSH trong Local Group Policy Editor (gpedit.msc).
Cấu hình cài đặt cấp phép RDS với Local Group Policy Editor (gpedit.msc):
- Đi đến Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing;
- Đổi Set the Remote Desktop licensing mode thành Per Device;
- Trong tùy chọn Use the specified Remote Desktop license servers, chỉ định địa chỉ IP server cài RDLicensing. Nếu server cấp phép cài cục bộ, nhập
localhosthoặc127.0.0.1;
- Cập nhật cài đặt Group Policy cục bộ và chạy Remote Desktop Licensing Diagnoser. Đảm bảo nó thấy RDS CALs.
Trong GPO cục bộ, bạn cũng có thể đặt giới hạn phiên RDP (timeout) và quy tắc ngắt kết nối user khi không hoạt động.
Nếu muốn cấu hình Group Policy khác cho user cục bộ và administrator, dùng tính năng multiple GPO (MLGPO).Sau đó tạo tài khoản user cục bộ trên RDS server. Bạn có thể tạo user trong lusrmgr.msc hoặc PowerShell:
$UserPassword = ConvertTo-SecureString "PaSS123!" -AsPlainText -Force
New-LocalUser a.brown -Password $UserPassword -FullName "Andi Brown"
Để cho phép user kết nối đến server qua Remote Desktop Services, thêm tài khoản user vào nhóm Remote Desktop Users local group. Thêm user thủ công qua console quản lý máy tính hoặc PowerShell:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member a.brown

Bây giờ user có thể thử kết nối đến RDS host dùng mstsc.exe (hoặc client RDS khác) từ máy của họ. Đảm bảo nhiều hơn 2 user hoạt động có thể kết nối đến server đồng thời.
Lúc đăng nhập đầu tiên, license tạm cấp cho thiết bị user (tính năng RDS Per Device licensing). Lúc đăng nhập thứ hai, license vĩnh viễn cấp và xuất hiện trong Remote Desktop Licensing Manager. License cấp cho kỳ 52-89 ngày (số ngẫu nhiên).
Nếu hết license Per Device miễn phí, bạn có thể thủ công thu hồi license cho một số thiết bị user. Dùng console RDSLicensing hoặc script PowerShell:
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {($_.keypacktype -ne 0) -and ($_.keypacktype -ne 4) -and ($_.keypacktype -ne 6)}
# tổng số license per device
$licensepacks.TotalLicenses
# số license cấp cho thiết bị
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {$_.licensestatus -eq 2}
# tên máy tính muốn thu hồi license
$compname="wksmun2a15"
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $compname
$RevokePC.Revoke()
Nếu cần kết nối đến phiên RDP user, bạn có thể dùng chế độ RDS shadow connection (cũng hoạt động trên RDSH workgroup).