未配置远程桌面会话主机的许可模式

时间:2020-01-09 10:46:46  来源:igfitidea点击:

当尝试在运行Windows Server 2012 R2/2015/2019的RDS服务器场中配置新的RDSH节点时,我们可能会在系统任务栏中遇到以下警告弹出消息:

未配置远程桌面会话主机的许可模式。

远程桌面服务将在104天内停止工作。

在RD连接代理服务器上,使用服务器管理器指定远程桌面许可模式和许可服务器。

从错误消息来看,RDS主机在宽限期内运行(在120天的宽限期内,我们可以使用远程桌面会话主机而无需激活RDS许可证)。宽限期结束后,用户将无法连接到RDSH,并且托盘中将出现错误:

远程桌面服务将停止工作,因为此计算机已过宽限期,并且至少尚未联系有效的Windows Server 2012许可证服务器。单击此消息打开RD会话主机服务器配置以使用授权诊断。

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.

我已经在有关RDS错误的文章中描述了类似的问题。远程会话已断开连接,因为没有可用的远程桌面许可证服务器提供许可证,但是这里的情况有所不同。

为了更准确地诊断问题,我们需要运行RD授权诊断程序工具lsdiag.msc(管理工具->远程桌面服务->RD授权诊断程序)。其窗口显示以下错误:

远程桌面会话主机服务器的许可证不可用,RD授权诊断程序已识别出RD会话主机服务器的授权问题。
未配置远程桌面会话主机的授权模式。
远程桌面会话主机服务器在其宽限期内,但会话主机服务器尚未配置任何许可证服务器。

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.

如我们所见,由于未设置许可模式,因此没有可供客户端使用的许可证。

这意味着管理员未指定RDS许可服务器和/或者许可模式。即使在部署RDS主机时已经指定了许可类型,也应该这样做(配置部署-> RD许可->选择远程桌面许可模式)。

我们可以使用以下PowerShell命令检查是否设置了RDS许可证服务器:

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

注意Get-RDLicenseConfiguration cmdlet可能返回不同的错误数据。

如果未设置RDS icense服务器,则可以使用以下命令指定它:

$obj.SetSpecifiedLicenseServerList("uk-rdslic1.theitroad.local")

如果我们不记得安装RD许可证角色的服务器,则可以使用PowerShell ActiveDirectory模块中的Get-ADObject cmdlet显示在Active Directory域中注册的所有RDS许可服务器的列表:

Get-ADObject -Filter {objectClass -eq 'serviceConnectionPoint' -and Name -eq 'TermServLicensing'}

有几种方法可以强制设置RDS许可模式。

使用注册表

在注册表项" HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core"中,将名称为" LicensingMode"的DWORD参数的值从5更改为:

  • 如果使用"按设备" RDS许可模式,则为" 2";
  • 如果使用了"每用户"许可,则为" 4"。

我们可以通过regedit.exe或者注册表管理模块中的以下PowerShell命令手动更改注册表设置:

# 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 the server name and type of licensing in the 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

进行更改后,重新启动RDSH服务器。

我们还可以使用GPO(本地或者域策略)配置RDS许可证服务器参数。如果RDS服务器在工作组中(未加入Active Directory域),请使用本地组策略编辑器gpedit.msc。转到"计算机配置->管理模板-> Windows组件->远程桌面服务->远程桌面会话主机->许可"。

我们需要两项政策:

  • 使用指定的远程桌面许可证服务器启用策略并指定RDS许可证服务器地址。如果许可证服务器在同一服务器上运行,请键入
127.0.0.1

;

  • 设置远程桌面许可模式选择许可模式。在我们的例子中,它是"每用户"。

重新启动服务器后,打开RD许可诊断程序,并检查可用RDS许可的数量和选择的许可模式。

如果网络上使用了防火墙,则必须打开从RDSH主机到RDS许可服务器的以下端口:TCP:135,UDP:137,UDP:138,TCP:139,TCP:445,TCP:4915265535(RPC范围)。

我们可以使用Test-NetConnection cmdlet检查打开的端口。如果在本地Windows Defender防火墙上关闭了端口,则可以使用NetSecurity模块中的PowerShell cmdlet打开端口。

还要注意,例如,如果RD授权服务器上安装了Windows Server 2012 R2和RDS 2012 R2的CAL,则将无法安装Windows Server 2015/2019的RDS CAL许可证。这

Remote Desktop Licensing mode is not configured

即使我们指定了正确的许可证类型和RDS许可证服务器名称,错误仍然存在。旧的Windows Server版本根本不支持较新版本的RDS CAL。

在这种情况下," RD许可证诊断程序"窗口中将显示以下消息:

远程桌面会话主机处于每用户授权模式且没有重定向程序模式,但许可证服务器没有安装具有以下属性的任何许可证:
产品版本:Windows Server 2015
使用RD授权管理器在许可证服务器上安装适当的许可证。

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 2015
Use RD Licensing Manager to install the appropriate licenses on the license server.

首先,我们必须在RDS许可证服务器上升级Windows Server版本(或者部署新的RD许可证主机)。 Windows Server的较新版本(例如WS 2019)为所有先前版本的Windows Server支持RDS CAL。

注意如果RDS服务器在工作组中,则不会生成许可报告。尽管终端RDS许可证本身已正确颁发给客户端/设备。我们将必须自己监视剩余的RDS CAL数量。