Терминальный сервер подняли, пользователи работают, а через несколько месяцев утром никто не может подключиться: сеанс обрывается с сообщением, что нет доступных серверов лицензирования. Это не сбой, а окончание льготного периода RDS. Разберём, какие лицензии нужны, как их установить и как найти причину, если сервер их «не видит».
Коротко: каждому пользователю или устройству, которое подключается к узлу сеансов (RD Session Host), нужна клиентская лицензия RDS CAL — на пользователя или на устройство. Лицензии устанавливаются на сервер лицензирования (роль RD Licensing), который нужно активировать. Затем узлу сеансов указывают сервер лицензий и режим — через свойства развёртывания или групповую политику. Без этого сервер работает 120 дней.
Какие бывают RDS CAL
Типов два, и выбирать нужно до покупки — от этого зависит, какой режим включать на сервере.
| Параметр | На устройство (Per Device) | На пользователя (Per User) |
|---|---|---|
| Кому выдаётся | Конкретному компьютеру или тонкому клиенту | Учётной записи пользователя в Active Directory |
| Работа в рабочей группе | Да | Нет, учёт в рабочей группе не поддерживается |
| Временная лицензия | Выдаётся при первом входе устройства, действует 90 дней | Не выдаётся |
| Контроль количества | Сервер не выдаст больше, чем установлено | Технически можно превысить, но это нарушение лицензионного соглашения |
| Отзыв лицензии | Можно отозвать до 20% лицензий | Отозвать нельзя |
Практическое правило из документации Microsoft: лицензии на устройство подходят, когда одними компьютерами пользуются несколько смен; лицензии на пользователя — когда у каждого сотрудника свои устройства (рабочий ПК, ноутбук, домашний компьютер). Для офиса, где бухгалтер подключается и с работы, и из дома, обычно выгоднее Per User — но только если сервер в домене.
Совместимость версий
Лицензии более старой версии не подходят для более нового сервера. Для узла сеансов на Windows Server 2022 нужны RDS CAL 2022 или 2025, для Windows Server 2025 — только 2025. Сам сервер лицензирования должен быть той же версии, что и устанавливаемые лицензии, или новее: лицензии 2025 на сервер лицензирования Windows Server 2022 не установятся.
Льготный период 120 дней
После установки роли RD Session Host сервер 120 дней принимает подключения без сервера лицензирования. Это время на то, чтобы купить и установить лицензии, а не способ работать бесплатно. Сколько дней осталось, показывает PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetGracePeriodDays()
В интернете можно найти способы «сбросить» льготный период через реестр. Microsoft прямо пишет, что так делать не рекомендуется: правильное решение — сервер лицензирования с установленными лицензиями.
Установка и активация сервера лицензирования
- Установите роль: в Server Manager — Add Roles and Features → Remote Desktop Services → Remote Desktop Licensing, или командой
Install-WindowsFeature RDS-Licensing -IncludeManagementTools. - Откройте Tools → Remote Desktop Services → Remote Desktop Licensing Manager.
- Выберите сервер, затем Action → Activate Server. Способ подключения — автоматический (исходящее соединение на TCP 443), через веб-браузер с другого компьютера или по телефону.
- Заполните сведения об организации и завершите мастер.
- Выберите Action → Install Licenses, укажите программу, по которой куплены лицензии, введите код лицензии или номер соглашения, затем версию продукта, тип и количество.
- В домене проверьте Review Configuration: учётная запись компьютера сервера лицензирования должна входить в группу Terminal Server License Servers в AD. Если чего-то не хватает, там же есть кнопка Add to Group.
Если сервер лицензирования в списке отмечен зелёной галочкой, а в столбцах видно общее и доступное количество лицензий — с ним всё в порядке.
Как указать сервер лицензий и режим
Узел сеансов сам сервер лицензий не ищет — его нужно указать явно. Способ зависит от типа развёртывания.
Развёртывание с Connection Broker (домен)
В Server Manager: Remote Desktop Services → Overview → Tasks → Edit Deployment Properties → RD Licensing. Выберите Per User или Per Device и добавьте сервер лицензий. То же самое через PowerShell:
Set-RDLicenseConfiguration -LicenseServer "lic01.office.local" -Mode PerUser -ConnectionBroker "rds01.office.local"
Только RD Session Host и RD Licensing (в том числе рабочая группа)
Откройте gpedit.msc (или доменную GPO для терминальных серверов) и перейдите в Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Licensing:
- Use the specified Remote Desktop license servers — включить и указать имя сервера лицензий (несколько — через запятую);
- Set the Remote Desktop licensing mode — включить и выбрать Per Device или Per User.
Эти политики записываются в реестр в раздел HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services, параметры LicenseServers и LicensingMode (2 — на устройство, 4 — на пользователя). Важная деталь: настройка политикой имеет приоритет над настройкой в Server Manager. Если когда-то задали режим в gpedit.msc, а потом меняете его в свойствах развёртывания — изменения не применятся, пока политика включена.
Проверить, что реально видит узел сеансов:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
$obj.LicensingType
Отдельный сервер лицензирования в рабочей группе
После обновления безопасности для CVE-2024-38099 сервер лицензирования требует от узла сеансов не анонимных учётных данных. Если роли стоят на разных серверах рабочей группы, Microsoft рекомендует создать на сервере лицензирования отдельного локального пользователя, а на узле сеансов сохранить его учётные данные от имени NETWORK SERVICE:
psexec.exe -I -u "NT AUTHORITYNETWORK SERVICE" cmd.exe
cmdkey /add:LIC01 /user:LIC01rdslic /pass
Здесь LIC01 — имя сервера лицензирования, rdslic — созданный на нём пользователь. Если обе роли на одной машине, этот шаг не нужен.
Диагностика: RD Licensing Diagnoser
Первый инструмент при любой проблеме с лицензиями — RD Licensing Diagnoser (lsdiag.msc; в Server Manager он находится в меню Tools, в папке Remote Desktop Services, в старых версиях — Terminal Services). Запускайте его на узле сеансов: в верхней части он перечисляет найденные проблемы, в нижней — возможные причины и что сделать. Дополнительно полезен журнал событий на сервере лицензирования: Applications and Services Logs → Microsoft → Windows → TerminalServices-Licensing → Operational. Применение политик проверяется командой gpresult /H C:tempgp.html.
Типичные ошибки
| Симптом | Причина | Что сделать |
|---|---|---|
| «The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license» | Льготный период закончился, сервер лицензий не указан или недоступен | Указать сервер лицензий политикой или в свойствах развёртывания, проверить службу Remote Desktop Licensing и сеть между серверами |
| Всплывающее сообщение «Remote Desktop licensing mode is not configured» | Не задан режим лицензирования | Включить Set the Remote Desktop licensing mode или выбрать режим в Edit Deployment Properties |
| Лицензии установлены, но не выдаются | Режим на сервере не совпадает с типом купленных CAL, например Per User в рабочей группе | Привести режим в соответствие с типом лицензий; в рабочей группе — только Per Device |
| Лицензии не выдаются после обновления сервера до новой версии | Старые CAL не подходят к новой версии узла сеансов | Нужны CAL версии узла сеансов или новее |
| Режим меняется в Server Manager, но ничего не происходит | Действует локальная или доменная политика | Изменить или отключить политику в узле Licensing |
| «Access was denied because of a security error» и ошибки X.224 в диагностике | Повреждены сертификаты лицензирования на узле сеансов | По инструкции Microsoft: экспортировать и удалить значения Certificate, X509 Certificate, X509 Certificate ID и X509 Certificate2 в HKLMSYSTEMCurrentControlSetControlTerminal ServerRCM, перезагрузить сервер и заново активировать сервер лицензирования |
Подробные таблицы совместимости и шаги приведены в статье Microsoft о лицензировании RDS с помощью CAL.
Если разбираться с лицензированием, активацией и обновлениями терминального сервера самому нет времени, можно поручить это администратору — например, через настройку серверов Windows под ключ — или вообще не держать свой сервер и работать на арендованном терминальном сервере.
Частые вопросы
Нужна ли RDS CAL для администратора, который заходит на сервер по RDP?
Для обслуживания сервера Windows Server допускает административные подключения без RDS CAL; при закончившемся льготном периоде администратор может подключиться через mstsc /admin. Но если администратор работает на терминальном сервере как обычный пользователь — в 1С, почте, офисных программах, — ему нужна лицензия, как и остальным.
Можно ли смешивать лицензии на пользователя и на устройство?
На сервер лицензирования можно установить оба типа, но узел сеансов работает в одном режиме — Per User или Per Device. Выдаваться будут лицензии того типа, который выбран в режиме.
Сервер лицензирования должен быть отдельной машиной?
Нет. Для одного терминального сервера роли RD Session Host и RD Licensing можно установить на одну машину — это поддерживаемая конфигурация и в домене, и в рабочей группе.
Нужен ли серверу лицензирования постоянный доступ в интернет?
Нет. Интернет нужен только для активации и установки лицензий, причём и это можно сделать через браузер на другом компьютере или по телефону. Сам сервер лицензирования после активации работает без выхода в интернет.