В данной статье вы узнаете как исправить ошибку на Windows Server 2012-2022 которая возникает в процессе использования Службы удаленных рабочих столов, которая в результате сбоя или окончания использования пробного периода в 120 дней может не пускать вас на сервер терминалов. Данная инструкция актуальна на 2023 год.
Всем привет! Когда после выходных я пришел на работу и один из сотрудников мне сказал, что не может подключиться к терминалке и вылетает ошибка я понял, что понедельник будет тяжелым.

Подключение к удаленному рабочему столу. Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов, которые могли бы провести лицензирование.
Обратитесь к администратору сервера
Терминальный сервер не работает и не подключается RDP
А зайдя на сервер в Средства диагностики лицензирования удаленных столов меня встречала вот такая вот картина:
Ошибка в Средства диагностики лицензирования удаленных столов

Где были две ошибки:
| Проблема | Предлагаемое решение | |
| Льготный период для сервера узла сеансов удаленных рабочих столов истек, но на этом сервере не были настроены серверы лицензирования. Подключение к этому серверу будет невозможно, пока для него не будет настроен сервер лицензирования. | Настройте сервер лицензирования для сервера узла сеансов удаленных рабочих столов. Если у вас уже есть сервер лицензирования, укажите его. Если нет, установите на компьютер в сети сервер лицензирования удаленных рабочих столов и настройте сервер узла сеансов удаленных рабочих столов на его использование. | |
| Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов. | Задайте на сервере узла сеансов удаленных рабочих столов режим лицензирования “на пользователя” или “на устройство”. Воспользуйтесь диспетчером лицензирования удаленных рабочих столов, чтобы установить соответствующие лицензии на сервере лицензирования. |
Ошибка в просмотре событий:
В просмотре событий последнее сообщение было такое:

Льготный период лицензирования удаленных рабочих столов закончился, а режим лицензирования для сервера, обслуживающего сеансы подключения к удаленному рабочему столу, не настроен. Для постоянной работы необходимо настроить режим лицензирования.
Этот сервер терминалов я поднимал для этого отдела который сервером в итоге не пользовался и через несколько месяцев когда опять встал вопрос, но что могло произойти я не понимал, единственное что можно сразу подумать что прошло 120 дней пробного использования и теперь необходимо покупать лицензии, но я активировал терминальный сервер и такого точно не могло быть!
инструкция: – Активация терминального сервера
Диспетчер лицензирования удаленных рабочих столов
в диспетчере лицензирования все лицензии стоят и нет никаких ошибок и ве проверки с зеленой галочкой – т.е. все ок.

Ошибка: Льготный период для сервера узла сеансов удаленных рабочих столов истек
Первое что меня смутило в Средстве диагностики лицензирования удаленных столов, то что у меня почему то режим лицензирования стоит – Не заданно!

Как проверить лицензирование Terminal Server
Если в диспетчере серверов у вас задан сервер лицензирования как у меня, а в средствах диагностики пишет что сервер не задан, данный глюк будем лечить так.
Открываем PowerShell и вводим команду:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
далее вводим команду
$obj.GetSpecifiedLicenseServerList()
У нас выводится информация где мы видим что параметр SpecifiedLicenseServerList не задан! (как такое может быть я не знаю)

Теперь наша задача прописать принудительно наш сервер лицензирования терминалов:
$obj. SetSpecifiedLicenseServerList("сервер.терминалов.lcl")
проверяем что теперь у нас указан сервер терминалов:

как видим сервер прописан.
Перезагружаем сервер
Результат
Как видим в Средствах диагностики лицензирования удаленных столов у нас пропала одна ошибка с “Льготным период для сервера узла сеансов удаленных рабочих столов истек, но на этом сервере не были настроены серверы лицензирования”.

Отлично! Идем дальше!
Ошибка: Не задан режим лицензирования для сервера узла сеансов удаленных рабочих столов
Чтобы принудительно назначить режим лицензирования на сервере терминалов на Устройство или на Пользователя делаем следующее
Открываем реестр:
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core
и меняем значение DWORD параметра с именем LicensingMode с 5 на
- 2 – если используется лицензирование по устройствам (Per Device)
- 4 – при использовании RDS лицензирования по пользователям (Per User)

Перезагружаем сервер
Заходим в Средства диагностики лицензирования удаленных столов и видим что у нас теперь нет тут ошибок, а режим лицензирования выставлен как надо!

Все проблема решена! Ура-Ура! Теперь RPD спокойно подключается на сервер, “юзвери”)) могут быть счастливы, а админ пошел пить кофе!
Дополнение от 11.09.2026 года
Льготный период лицензирования удалённых рабочих столов закончился: исправляем ошибку RDS на Windows Server
Иногда при подключении к Windows Server по RDP можно столкнуться с сообщением:
«Льготный период лицензирования удаленных рабочих столов закончился, а режим лицензирования для сервера, обслуживающего сеансы подключения к удаленному рабочему столу, не настроен. Для постоянной работы необходимо настроить режим лицензирования.»
При этом RDS Licensing может быть установлен, RDS CAL приобретены и даже сам сервер лицензирования может быть настроен.
В моём случае именно это и произошло: сервер лицензирования был зарегистрирован, лицензии Per Device имелись, но RDS Session Host потерял назначенный сервер лицензирования и режим лицензирования.
Разберём, как это диагностировать и исправить.
В чём была проблема
На сервере были установлены обе необходимые роли:
- Remote Desktop Session Host
- Лицензирование удалённых рабочих столов (RDS Licensing)
Проверить наличие ролей можно через PowerShell:
Get-WindowsFeature RDS-Licensing
Результат:
[X] Лицензирование удаленных рабочих столов
RDS-Licensing Installed
И:
Get-WindowsFeature RDS-RD-Server
Результат:
[X] Remote Desktop Session Host
RDS-RD-Server Installed
То есть проблема была не в отсутствии самой роли.
1. Проверяем настройки RDS Licensing
Для диагностики используется WMI-класс:
Win32_TerminalServiceSetting
Открываем PowerShell от имени администратора и получаем объект:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Теперь проверяем сервер лицензирования:
$obj.GetSpecifiedLicenseServerList()
В моём случае результат был:
ReturnValue : 0
SpecifiedLSList : {}
Это очень важный момент.
ReturnValue : 0 означает, что команда выполнилась успешно.
А вот:
SpecifiedLSList : {}
означает, что для текущего RDS Session Host сервер лицензирования не указан.
Именно поэтому Windows не понимал, куда обращаться за RDS CAL.
2. Проверяем режим лицензирования
Следующая проверка:
$obj.LicensingType
У меня результат был:
5
Значение 5 означает, что режим лицензирования не настроен.
Таким образом, мы получили две проблемы:
Сервер лицензирования:
не указан
Режим лицензирования:
не настроен
3. Как определить зарегистрированный сервер лицензирования
Не стоит сразу прописывать сервер вручную, если мы не уверены в его имени.
Сначала можно попросить Windows показать зарегистрированные серверы лицензирования:
$obj.GetRegisteredLicenseServerList()
У меня результат:
RegisteredLSList : {Server1c}
ReturnValue : 0
Таким образом, мы точно установили, что сервер лицензирования называется:
Server1c
При этом команда:
$obj.FindLicenseServers()
ничего полезного не вернула:
LicenseServersList :
ReturnValue : 0
Это не стало проблемой, поскольку зарегистрированный сервер мы уже нашли через GetRegisteredLicenseServerList().
4. Проверяем наличие роли лицензирования
Дополнительно убедимся, что сервер действительно является RDS License Server:
Get-WindowsFeature RDS-Licensing
В нашем случае:
Install State : Installed
То есть на Server1c роль Лицензирование удалённых рабочих столов установлена.
5. Определяем тип RDS CAL
В данном случае использовались лицензии:
RDS CAL Per Device — на устройство.
Это важно.
В Windows Server существуют два основных режима:
- Per User — лицензия на пользователя;
- Per Device — лицензия на устройство.
Если используются CAL Per Device, RDS Session Host должен работать в соответствующем режиме.
6. Прописываем сервер лицензирования
После того как мы точно установили имя сервера:
Server1c
добавляем его в список серверов лицензирования.
Используем:
$obj.AddLSToSpecifiedLicenseServerList("Server1c")
После выполнения обязательно проверяем:
$obj.GetSpecifiedLicenseServerList()
Результат должен быть:
ReturnValue : 0
SpecifiedLSList : {Server1c}
Это означает, что RDS Session Host теперь знает, где искать лицензии.
7. Настраиваем режим лицензирования
Так как у нас лицензии Per Device, устанавливаем соответствующий режим:
$obj.ChangeMode(2)
После этого проверяем:
$obj.LicensingType
Результат:
2
То есть:
2 = Per Device
Для справки:
2 = Per Device
4 = Per User
5 = режим не настроен
8. Финальная проверка
В итоге настройки должны выглядеть следующим образом.
Проверяем режим:
$obj.LicensingType
Получаем:
2
Проверяем сервер лицензирования:
$obj.GetSpecifiedLicenseServerList()
Получаем:
ReturnValue : 0
SpecifiedLSList : {Server1c}
То есть итоговая конфигурация:
RDS Session Host
│
├── LicensingType = 2
│ └── Per Device
│
└── License Server
└── Server1c
Почему появилась ошибка
Само сообщение Windows немного вводит в заблуждение.
Оно говорит:
«Льготный период лицензирования удаленных рабочих столов закончился…»
Но это не обязательно означает, что RDS CAL закончились или что лицензий вообще нет.
В нашем случае лицензии были.
Проблема заключалась в конфигурации RDS Session Host:
SpecifiedLSList = {}
LicensingType = 5
То есть сервер:
- не имел явно назначенного сервера лицензирования;
- не имел установленного режима лицензирования.
Поэтому после окончания стандартного льготного периода RDS перестал разрешать нормальную работу удалённых подключений.
Кратко: что нужно сделать
Если у вас аналогичная ситуация и используется Per Device CAL, последовательность следующая:
Получаем объект RDS:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Проверяем текущий сервер лицензирования:
$obj.GetSpecifiedLicenseServerList()
Проверяем зарегистрированные серверы:
$obj.GetRegisteredLicenseServerList()
Добавляем найденный сервер лицензирования:
$obj.AddLSToSpecifiedLicenseServerList("Server1c")
Проверяем:
$obj.GetSpecifiedLicenseServerList()
Должно быть:
SpecifiedLSList : {Server1c}
Устанавливаем Per Device:
$obj.ChangeMode(2)
Проверяем:
$obj.LicensingType
Должно быть:
2
Важное замечание
Не стоит бездумно копировать команду:
$obj.SetSpecifiedLicenseServerList("Server1c")
В некоторых конфигурациях Windows Server этот метод может завершаться ошибкой:
WMIMethodException
В нашем случае для добавления сервера успешно отработал метод:
$obj.AddLSToSpecifiedLicenseServerList("Server1c")
Поэтому перед изменением конфигурации лучше сначала выполнить диагностику и убедиться, какой сервер лицензирования зарегистрирован.
Результат
После восстановления двух параметров:
SpecifiedLSList = {Server1c}
LicensingType = 2
RDS Session Host получил корректную информацию о лицензировании:
сервер лицензирования — Server1c, режим — Per Device.
Таким образом, проблема с сообщением:
«Льготный период лицензирования удаленных рабочих столов закончился…»
была устранена не переустановкой RDS и не переустановкой лицензий, а восстановлением настроек лицензирования RDS Session Host.









