当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

作者:精品下载站 日期:2024-12-14 22:59:30 浏览:16 分类:玩电脑

远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证


在本文中,我们将讨论当 RDP 客户端无法连接到安装了远程桌面服务主机角色的 Windows Server 时,与 RDS 许可相关的几个常见问题。

在以下情况下,将 RDP 客户端连接到 RDS 主机时可能会出现许可错误:

  • 远程桌面服务设置中未指定您要从中获取客户端许可证 (RDS CAL) 的 RDS 许可服务器;

  • 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 许可诊断程序工具。如果所有配置均正确,您应该会看到 RDS 许可服务器的名称以及许可证类型(每用户/每设备)。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

使用 RD Licensing Manager 控制台连接到 RDS 许可证服务器 (

licmgr.exe

)并检查您是否拥有所需类型(每用户或每设备)的可用免费许可证。如果您用完免费的 RDS CAL,则需要购买新的 CAL 包,等待有人释放许可证,或直接从控制台撤销未使用的许可证(右键单击计算机/用户并选择撤销许可证)。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

在此示例中,您可以看到有免费的 RDS CAL,并且它们已颁发给用户(已颁发=44)。

提示。如果您的 RDSH 服务器部署在工作组中(而不是在 AD 域中),则您无法在其上使用每用户 RDS 许可证。连接后,您的用户将始终收到临时的本地每设备许可证。

在这种情况下,客户端计算机很可能会尝试使用过期的临时 RDP 许可证连接到 RDSH 服务器(如果客户端首次连接时您的 RDS 许可证服务器不可用,则会向客户端颁发 180 天的临时 RDP 许可证)。在这种情况下,您需要在客户端设备的注册表中重置此过期许可证。

在客户端计算机(本例中为 Windows 10)上执行以下操作:

  1. 启动注册表编辑器(

    regedit.exe

    );

  2. 删除注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing

    [玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

  3. 关闭注册表编辑器并运行

    mstsc.exe

    (远程桌面连接)以管理员身份;

    [玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

  4. 连接到您的 RDS 服务器。在这种情况下,将自动重新创建 MSLicensing 注册表项,并且计算机将收到新的 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.

由于没有可用于提供许可证的远程桌面许可证服务器,远程会话已断开连接

一位客户在 Windows Server 2012 R2 上部署的 RDS 服务器场遇到了问题。由于某种原因,尽管已安装并配置许可证服务器角色并且已激活 RDP CAL,但 RDS 服务器已停止向用户颁发终端许可证。

当用户尝试通过 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 设置(远程桌面服务 -> 部署概述 -> 任务 -> 编辑部署属性)。确保在 RDSH 配置中指定正确的远程桌面许可证服务器和 RDS CAL 类型(每设备或每用户)。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

您还可以通过 PowerShell 检查 RDS 许可服务器设置:

Get-RDLicenseConfiguration

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

如您所见,配置中指定了 LicenseServer,并使用 PerUser 许可类型。

检查从 RDSH 主机访问 RDS LicenseingServer 时以下端口是否被防火墙阻止:

TCP 135, UDP 137, UDP 138, TCP 139, TCP 445, TCP 49152-65535 (RPC range)

。如果 RDS 许可证服务器不可用,许可证诊断程序将显示错误:

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.

重置 120 天 RDS 宽限期 (L$RTMTIMEBOMB)

仔细查看 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.

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

要去掉这个注册表参数,需要开放父密钥权限,并授予您的账户密钥所有者的权限。然后为Administrators组设置完全控制权限(我不会详细描述该过程)。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

现在,右键单击 L$RTMTIMEBOMB 参数并将其删除。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

重新启动 RDSH 服务器,并使用 RDP 客户端连接到它。确保已使用远程桌面授权管理器成功颁发 RDS CAL。

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

如果未收到 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")

您还可以使用组策略 GPO 设置许可证服务器名称和许可证类型。如果您使用的是本地 GPO,请运行 gpedit.msc 并转到“计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 许可”部分。设置以下选项:

  • 使用指定的远程桌面许可服务器

  • 设置远程许可模式

[玩转系统] 远程会话已断开:没有可用的远程桌面许可证服务器/客户端访问许可证

RDS 主机现在可以从 RDS 许可服务器获取许可证并将其颁发给您的 RDP 用户。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯