Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Phiên từ xa bị ngắt: Không có máy chủ cấp phép Remote Desktop/Client Access Licenses

Trong bài viết này, chúng ta sẽ xem xét một số vấn đề phổ biến liên quan đến cấp phép RDS, khi khách RDP không thể kết nối đến Windows Server với vai trò Remote Desktop Services Host đã cài đặt.

Lỗi cấp phép khi kết nối khách RDP đến máy chủ RDS có thể xuất hiện nếu:

  • Máy chủ cấp phép RDS từ đó bạn muốn lấy giấy phép khách (RDS CALs) không được chỉ định trong cài đặt Remote Desktop Services;
  • Máy chủ cấp phép RDS đã hết CALs khả dụng;
  • Khách RDP cố gắng kết nối với giấy phép RDS tạm thời đã hết hạn;

Phiên từ xa bị ngắt vì không có giấy phép truy cập khách Remote Desktop khả dụng cho máy tính này

Trước hết, hãy xem lỗi liên quan đến khách lấy RDS CALs từ máy chủ cấp phép.

Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer. Please contact the server administrator.

Kết nối với máy chủ RDSH ở chế độ quản trị (mstsc.exe /admin) và chạy công cụ RD Licensing Diagnoser. Nếu mọi thứ cấu hình đúng, bạn sẽ thấy tên máy chủ cấp phép RDS và loại giấy phép (Per User/Per Device).

Kết nối với máy chủ cấp phép RDS bằng bảng điều khiển RD Licensing Manager (licmgr.exe) và kiểm tra xem bạn có giấy phép miễn phí loại yêu cầu (Per User hoặc Per Device) không. Nếu hết RDS CALs miễn phí, bạn cần mua gói CAL mới, chờ ai đó giải phóng giấy phép, hoặc thu hồi giấy phép không dùng trực tiếp từ bảng điều khiển (nhấp chuột phải vào máy tính/người dùng và chọn Revoke License).

Trong ví dụ này, bạn thấy có RDS CALs miễn phí, và chúng được cấp cho người dùng (Issued = 44).

Gợi ý. Nếu máy chủ RDSH của bạn triển khai trong workgroup (không trong miền AD), thì bạn không thể dùng giấy phép Per User RDS trên nó. Khi kết nối, người dùng của bạn luôn nhận giấy phép Per Device tạm thời cục bộ.

Có khả năng lớn, trong trường hợp này máy tính khách đang cố gắng kết nối đến máy chủ RDSH của bạn với giấy phép RDP tạm thời đã hết hạn (nếu máy chủ cấp phép RDS không khả dụng khi khách lần đầu kết nối, khách được cấp giấy phép RDP tạm thời 180 ngày). Trong trường hợp này, bạn cần reset giấy phép hết hạn này trong registry trên thiết bị khách.

Thực hiện sau trên máy tính khách (Windows 10 trong ví dụ):

  1. Khởi động Registry Editor (regedit.exe);
  2. Xóa khóa registry HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing;
  3. Đóng registry editor và chạy mstsc.exe (Remote Desktop Connection) với tư cách administrator;
  4. Kết nối đến máy chủ RDS của bạn. Lúc này, khóa reg MSLicensing sẽ tự động tạo lại, và máy tính sẽ nhận giấy phép RDP mới.

Nếu bạn không chạy mstsc.exe với quyền admin, thì lỗi sẽ xuất hiện cho bất kỳ kết nối RDP nào:

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.

Phiên từ xa bị ngắt vì không có máy chủ cấp phép Remote Desktop khả dụng để cung cấp giấy phép

Một khách hàng gặp vấn đề với cụm máy chủ RDS triển khai trên Windows Server 2012 R2. Với lý do nào đó, máy chủ RDS đã ngừng cấp giấy phép terminal cho người dùng, mặc dù vai trò máy chủ cấp phép đã được cài đặt và cấu hình, và RDP CALs đã được kích hoạt.

Khi người dùng cố gắng kết nối đến terminal server qua RDP, lỗi sau xuất hiện:

The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license. Please contact the server administrator.

Kết nối với console máy chủ ở chế độ quản trị (mstsc /admin). Mở Server Manager, và vào cài đặt RDS (Remote Desktop Services -> Deployment Overview -> Tasks -> Edit Deployment Properties). Đảm bảo máy chủ cấp phép Remote Desktop chính xác và loại RDS CAL (Per Device hoặc Per User) được chỉ định trong cấu hình RDSH.

Bạn cũng có thể kiểm tra cài đặt máy chủ cấp phép RDS qua PowerShell:

Get-RDLicenseConfiguration

Như bạn thấy, LicenseServer được chỉ định trong cấu hình, và loại cấp phép PerUser được dùng.

Kiểm tra các cổng sau không bị chặn bởi tường lửa khi truy cập từ máy chủ RDSH đến máy chủ cấp phép RDS: TCP 135, UDP 137, UDP 138, TCP 139, TCP 445, TCP 49152–65535 (phạm vi RPC). Nếu máy chủ cấp phép RDS không khả dụng, License Diagnoser sẽ hiển thị lỗi:

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.

Reset kỳ hạn 120 ngày RDS Grace Period (L$RTMTIMEBOMB)

Hãy nhìn kỹ các sự kiện trong Event Viewer trên máy chủ RDS. Có thể có lỗi như sau:

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 rất có thể cũng hiển thị lỗi:

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.

Điều này có nghĩa là kỳ hạn RDS cho máy chủ RDSH đã hết, và bạn cần gia hạn chế độ grace, hoặc kích hoạt máy chủ trên máy chủ cấp phép RDS.

Kỳ hạn RDS cho phép bạn dùng Dịch vụ Desktop từ xa trên Windows Server miễn phí 120 ngày. Có khả năng lớn, khi đăng nhập vào RDSH với tư cách admin, bạn thấy lỗi:

Licensing mode for the Remote Desktop Session Host is not configured. Remote Desktop Service will stop working in 86 days.

Số ngày còn lại trước khi kết thúc kỳ hạn RDS Grace Period có thể tìm từ dấu nhắc lệnh với quyền nâng cao:

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays

Lưu ý DaysLeft = 0. Điều này có nghĩa là Grace Period đã hết hạn trên máy chủ RDSH này.

Để gia hạn kỳ hạn trong RDS, bạn cần xóa tham số registry trên máy chủ, xác định thời gian cấp phép grace period. Ngày xác định kỳ hạn RDS grace period cho máy chủ được lưu trong tham số reg_binary L$RTMTIMEBOMB (tên khá hài hước – TIME BOMB….) nằm trong khóa registry sau:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod

Bạn phải xóa tham số L$RTMTIMEBOMB khỏi registry. Tuy nhiên, quản trị viên không có đủ quyền để làm điều này.

Unable to delete all specified values.

Để xóa tham số registry này, bạn cần mở quyền khóa cha và cấp cho tài khoản của bạn đặc quyền chủ sở hữu khóa. Sau đó đặt quyền Full Control cho nhóm Administrators (tôi không mô tả chi tiết quy trình).

Bây giờ, nhấp chuột phải tham số L$RTMTIMEBOMB và xóa nó.

Khởi động lại máy chủ RDSH, và kết nối bằng khách RDP. Đảm bảo RDS CAL đã được cấp thành công dùng Remote Desktop Licensing Manager.

Nếu RDS CAL không nhận được, kiểm tra xem có sự kiện trong Event Viewer không:

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.

Dùng lệnh PowerShell này, đảm bảo máy chủ cấp phép RDS được đặt:

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()

Như bạn thấy, máy chủ cấp phép RDS không được đặt (SpecifiedLSList rỗng). Buộc đặt máy chủ cấp phép RD với lệnh sau:

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.SetSpecifiedLicenseServerList("lon-rdslic.woshub.com")

Bạn cũng có thể đặt tên máy chủ cấp phép và loại giấy phép dùng Group Policy GPO. Nếu dùng Local GPO, chạy gpedit.msc và đi đến phần Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing. Đặt các tùy chọn sau:

  • Use the specified Remote Desktop license servers
  • Set the Remote licensing mode

Máy chủ RDS giờ sẽ có thể lấy giấy phép từ máy chủ cấp phép RDS và cấp cho người dùng RDP của bạn.