Ошибка не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов
При настройке нового узла сервера терминалов RDS фермы на Windows Server 2012 R2/2016/2019 вы можете столкнуться со следующим всплывающим предупреждением, которое появляется в трее:
Remote Desktop Service will stop working in xxx days.
Судя по ошибке, служба RDS запущена в режиме льготного периода лицензирования (в течении пробного периода 120 дней вы можете использовать Remote Desktop Session Host без активации RDS лицензий). Когда 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.
Для более точной диагностики проблемы нужно запустить “Средство диагностики лицензирования удаленных рабочих столов” — 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.
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 уже был указан тип лицензирования (Configure the deployment -> RD Licensing).
Отройте консоль PowerShell и проверьте, задан ли сервер лицензирования RDS с помощью следующих команд:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
Если сервер лицензирования не задан, его можно указать командой:
$obj. SetSpecifiedLicenseServerList("rdslic1.winitpro.ru")
Get-ADObject -Filter {objectClass -eq 'serviceConnectionPoint' -and Name -eq 'TermServLicensing'}
Также вы можете принудительно задать параметры лицензирования RDS можно несколькими способами.
Через реестр:
В ветке HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing 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:\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
После внесения изменений нужно перезагрузить RDS хост.
Параметры сервера лицензирования RDS также можно задать через политики GPO (локальную или доменную политику).
Если сервер RDS находится в рабочей группе (не добавлен в домен Active Directory), используйте локальный редактор политик gpedit.msc.
Перейдите в раздел Конфигурация компьютера -> Компоненты 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;
- (Set the Remote Desktop licensing mode) – выберите нужный режим лицензирования. В нашем примере Per User.
После перезагрузки сервера откройте средство диагностики лицензирования RDS. Если вы все настроили правильно, должно появится число доступных RDS лицензий и указан режим лицензирования.
Вы можете проверить доступность портов с помощью комнадлета Test-NetConnection. Если порты закрыты на локальном брандмауэре Windows Defender Firewall, вы можете открыть порты с помощью командлетов из модуля NetSecurity.
Также обратите внимание, что, если на сервере RD Licensing Server установлена, например, Windows Server 2012 R2 и CAL для RDS 2012 R2, вы не сможете установить RDS CAL лицензии для Windows Server 2016 или 2019. Ошибка “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.
Сначала Вам придется обновить версию Windows Server на сервере лицензирования (или развернуть новый RD License host). Более новая версия Windows Server (например, WS 2019 поддерживает RDS CAL для всех предыдущих версий Windows Server).