Ошибка: Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов

Ошибка: Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов

При настройке нового узла RDS фермы на Windows Server 2022/2019/2016/2012 R2 вы можете столкнуться со следующим всплывающим предупреждением в в трее:

Licensing mode for the Remote Desktop Session Host is not configured.

Remote Desktop Service will stop working in xxx days.

Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов. Служба удаленных рабочих столов перестанет работать через xxx дней.

Licensing mode for the Remote Desktop Session Host is not configured

При этом в Event Viewer присутствуют предупреждения с EventID 18:

Log Name: System
Source: Microsoft-Windows-TerminalServices-Licensing
Level: Warning
Description:
The Remote Desktop license server SRV1 has not been activated and therefore will only issue temporary licenses. To issue permanent licenses, the Remote Desktop license server must be activated.

Эти ошибки указывают на то, что ваш RDS работает в режиме льготного периода лицензирования. В течении grace периода вы можете использовать Remote Desktop Session Host без активации RDS лицензий в течении 120 дней. Когда grace период закончится, пользователи не смогут подключиться к RDSH с ошибкой:

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 Grace Period можно вывести с помощью команды:

wmic /namespace:rootCIMV2TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays

Проверка параметров лицензирования на сервере Remote Desktop Services

Чтобы идентифицировать проблему, запустите “Средство диагностики лицензирования удаленных рабочих столов” — lsdiag.msc (Administrative Tools -> Remote Desktop Services -> RD Licensing Diagnoser). В окне утилиты будет отображаться такая ошибка:

Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов

В английской версии Windows Server ошибка выглядит так:

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.

Number of licenses available for clients: 0

Set the licensing mode on the Remote Desktop Session Host server to either Per User or Per Device. Use RD Licensing Manager to install the corresponding licenses on the license server

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 хосте нет доступных клиентам лицензий, т.к. режим лицензирования не задан.

Windows Server RDS: режим лицензирования не задан

Скорее всего проблема в том, что администратор не задал для этого хоста имя/адрес сервера лицензирования RDS и/или режим лицензирования. Это несмотря на то, что при развертывании хоста RDS в настройка Deployment уже был указан тип лицензирования (Configure the deployment -> RD Licensing).

rds deployment

Настройка режима лицензирования RDS в Windows Server

Вы можете настроить параметры лицензирования RDS хоста несколькими способами:

  • С помощью PowerShell
  • Через реестр Windows
  • С помощью групповых политик (предпочтительно)

Настройка режима лицензирования через GPO

Для настройки параметров сервера лицензирования на хосте RDS нужно использовать доменный редактор GPO (gpmc.msc) или локальный редактор политик gpedit.msc.

На отдельностоящем хосте RDSH (в домене и в рабочей группе) проще всего использовать локальную политику. Перейдите в раздел Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Лицензирование (Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing).

Нас интересуют две политики:

  • Использовать указанные серверы лицензирования удаленных рабочих столов (Use the specified Remote Desktop license servers) — включите политику и укажите адрес сервера лицензирования RDS. Если сервер лицензий RDS CAL запущен на этом же сервере, укажите 127.0.0.1. Через запятую допустимо указать адреса нескольких хостов с ролью RDS Licensing; Использовать указанные серверы лицензирования удаленных рабочих столов
  • Set the Remote Desktop licensing mode – выберите нужный режим лицензирования. В нашем примере Per User. Задать режим лицензирования удаленных рабочих столов
Если вы развернули RDS хост без домена AD, допустимо использовать только Per Device лицензии RDS CAL. Иначе при входе пользователя на RDSH сервер в рабочей группе будет появляться сообщение:
Remote Desktop Issue.
There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes. Contact your system administrator to fix the problem.

Настройка режима лицензирования RDS из командной строки PowerShell

Откройте консоль PowerShell и проверьте, задан ли на вашем хосте адрес сервера лицензирования RDS:

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

GetSpecifiedLicenseServerLis

Примечание. Командлет Get-RDLicenseConfiguration при этом может выводить совершенно другие, ошибочные данные.

Если сервер лицензирования RDS не задан, его можно указать командой:

$obj.SetSpecifiedLicenseServerList("rdslic1.winitpro.ru")

Также можно нужно задать тип лицензирования (4 — Per User, или 2 — Per Device):

$obj.ChangeMode(4)

powershell: задать тип лицензирования на хосте rds

В домене Active Directory вы можете вывести список серверов с ролью RDS Licensing с помощью команддета Get-ADObject из модуля AD PowerShell:

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

Также можно настроить параметры лицензирования RDS хоста через сервер с ролью RD Connection Broker:

Set-RDLicenseConfiguration -LicenseServer @("rdslic1.winitpro.ru","rdslic2.winitpro.ru") -Mode PerDevice -ConnectionBroker "hq-rdcb1.winitpro.ru"

Настроить параметры лицензирования RDS через реестр

В ветке HKLMSYSTEMCurrentControlSetControlTerminal ServerRCMLicensing Core нужно изменить значение DWORD параметра с именем LicensingMode с 5 (режим лицензирования не задан) на:

  • 2 — если используется лицензирование на устройства (Per Device)
  • 4 — при использовании RDS лицензирования на пользователей (Per User)

Вы можете изменить параметр реестра вручную через regedit.exe или следующими командами PowerShell из модуля управления реестром:

# Укажите тип лицензирования RDS 2 – Per Device CAL, 4 – Per User CAL
$RDSCALMode = 2
# Имя сервера лицензирования RDS
$RDSlicServer = "rdslic1.winitpro.ru"# Задаем имя сервера и тип лицензирования в реестре
New-Item "HKLM:SYSTEMCurrentControlSetServicesTermServiceParametersLicenseServers"
New-ItemProperty "HKLM:SYSTEMCurrentControlSetServicesTermServiceParametersLicenseServers" -Name SpecifiedLicenseServers -Value $RDSlicServer -PropertyType "MultiString"
Set-ItemProperty "HKLM:SYSTEMCurrentControlSetControlTerminal ServerRCMLicensing Core" -Name "LicensingMode" -Value $RDSCALMode

тип лицензирования rds - LicensingMode

После внесения изменений нужно перезагрузить RDS хост. Затем откройте консоль диагностики лицензирования RDS. Если вы все настроили правильно, должно появится число доступных RDS лицензий (Number of licenses available for clients) и указан режим лицензирования (Licensing mode: Per device)

RD Licensing Diagnoser did not identify any licensing problems for the Remote Desktop Session Host.

rd license diagnoser не обнаружил ошибок

Если в вашей сети используются файерволы, необходим открыть следующие порты с RDSH хоста до сервера RDS лицензирования: TCP/135, UDP/137, UDP/138, TCP/139, TCP/445, TCP/49152–65535 (RPC диапазон).

Вы можете проверить доступность портов с помощью комнадлета Test-NetConnection. Если порты закрыты на локальном брандмауэре Windows Defender Firewall, вы можете открыть порты с помощью командлетов из модуля NetSecurity.

Также обратите внимание, что, если на сервере RD Licensing Server установлена, например, Windows Server 2016 и CAL для RDS 2016, вы не сможете установить RDS CAL лицензии для Windows Server 2019 или 2022. Ошибка “Remote Desktop Licensing mode is not configured” сохранится, даже если вы указали правильные тип лицензий и имя сервера лицензирования RDS. Старые версии Windows Server просто не поддерживают RDS CAL для более новых версий WS.

При этом в окне RD License Diagnoser будет отображаться надпись:

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

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:

Сначала Вам придется обновить версию Windows Server на сервере лицензирования (или развернуть новый RD License host). Более новая версия Windows Server (например, WS 2019) поддерживает RDS CAL для всех предыдущих версий Windows Server.

Примечание. Если ваш RDS сервер находится в рабочей группе, то отчет по лицензиям не формируется, хотя сами терминальные лицензии выдаются клиентам/устройствам корректно. Следить за количеством оставшихся лицензий придется самостоятельно.

 

Windows Server 2016
Ошибка: Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов