Удаленный сеанс отключен: Нет доступных лицензионных серверов удаленных рабочих столов/лицензий клиентского доступа

В этой статье мы рассмотрим несколько распространенных проблем, связанных с лицензированием RDS, когда клиенты RDP не могут подключиться к Windows Server с установленной ролью Remote Desktop Services Host.

Ошибки лицензирования при подключении клиентов RDP к хосту RDS могут возникать, если:

  • Сервер лицензирования RDS, с которого вы хотите получить клиентские лицензии (RDS CALs), не указан в настройках служб удаленных рабочих столов;
  • На сервере лицензирования RDS закончились доступные CAL;
  • Клиент RDP пытается подключиться с просроченной временной лицензией RDS;

Удаленный сеанс был отключен, потому что для этого компьютера нет доступных лицензий клиентского доступа к удаленному рабочему столу

Сначала рассмотрим ошибку, связанную с получением клиентами RDS CALs с сервера лицензий.

Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer. Please contact the server administrator.

Удаленный сеанс был отключен, поскольку для этого компьютера нет доступных лицензий клиентского доступа Remote Desktop. Обратитесь к администратору сервера.Удаленный сеанс был прерван, потому что для этого компьютера нет лицензий доступа к клиенту Remote Desktop. Обратитесь к администратору сервера.

Подключитесь к серверу RDSH в административном режиме (mstsc.exe /admin) и запустите инструменты RD Licensing Diagnoser. Если все настроено правильно, вы должны увидеть имя сервера лицензирования RDS и тип лицензии (Per User/Per Device).

rd licensing diagnoserrd licensing diagnoser

Подключитесь к серверу лицензий RDS с помощью консоли RD Licensing Manager (licmgr.exe) и убедитесь, что у вас есть свободные лицензии нужного типа (Per User или Per Device). Если свободные RDS CAL закончились, необходимо приобрести новый пакет CAL, подождать, пока кто-то освободит лицензию, или отозвать неиспользованные лицензии непосредственно из консоли (щелкните правой кнопкой мыши компьютер/пользователя и выберите Отозвать лицензию).

доступные rds CALsдоступные rds CALs

В этом примере видно, что есть свободные RDS CALs, и они выдаются пользователям (Выдано = 44).

Подсказка. Если ваш сервер RDSH развернут в рабочей группе (не в домене AD), то вы не сможете использовать Per User RDS-лицензии на нем. При подключении ваши пользователи всегда будут получать временную локальную лицензию Per Device.

Скорее всего, в этом случае клиентский компьютер пытается подключиться к вашему RDSH-серверу с просроченной временной лицензией RDP (если ваш сервер лицензий RDS был недоступен в момент первого подключения клиента, клиенту была выдана временная лицензия RDP на 180 дней). В этом случае необходимо сбросить эту просроченную лицензию в реестре на клиентском устройстве.

Выполните следующие действия на клиентском компьютере (в данном примере — Windows 10):

  1. Запустите редактор реестра (regedit.exe);
  2. Удалите ключ реестра HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing;удаление ключа реестра mslicensing для сброса лицензии rdp на windows 10удаление ключа реестра mslicensing для сброса лицензии rdp на windows 10
  3. Закройте редактор реестра и выполните команду mstsc.exe (Подключение к удаленному рабочему столу) от имени администратора;mstsc запустить от имени администраторазапуск mstsc от имени администратора
  4. Подключитесь к серверу RDS. В этом случае рег-ключ MSLicensing будет автоматически пересоздан, и компьютер получит новую лицензию RDP.
Если вы не запустили mstsc.exe с правами администратора, то при любом RDP-подключении будет возникать ошибка:

The remote computer disconnected the session because of an error in the licensing protocol. Please try connecting to the remote computer again or contact your server administrator.

Удаленный сеанс был прерван, поскольку нет доступных серверов лицензий удаленных рабочих столов для предоставления лицензии

Один из клиентов столкнулся с проблемой развернутой фермы RDS-серверов на Windows Server 2012 R2. По какой-то причине сервер RDS перестал выдавать терминальные лицензии пользователям, хотя роль сервера лицензий была установлена и настроена, а RDP CALs были активированы.

Когда пользователь пытается подключиться к терминальному серверу по RDP, появляется следующая ошибка:

The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license. Please contact the server administrator.

Удаленный сеанс был прерван, потому что нет доступных серверов лицензий удаленных рабочих столов для предоставления лицензии.Удаленный сеанс был прерван, потому что нет доступных серверов лицензий удаленных рабочих столов для предоставления лицензии.

Подключитесь к консоли сервера в административном режиме (mstsc /admin). Откройте диспетчер сервера и перейдите к настройкам RDS (Службы удаленных рабочих столов -> Обзор развертывания -> Задачи -> Редактирование свойств развертывания). Убедитесь, что в конфигурации RDSH указан правильный сервер лицензий Remote Desktop и тип RDS CAL (Per Device или Per User).

свойства развертывания rdsсвойства развертывания rds

Также можно проверить настройки сервера лицензирования RDS с помощью PowerShell:

Get-RDLicenseConfiguration

Get-RDLicenseConfigurationGet-RDLicenseConfiguration

Как видите, в конфигурации указан LicenseServer, а в поле PerUser используется тип лицензирования.

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

License server rdslic_hostname is not available. This could be caused by network connectivity problems, the Remote Desktop Licensing service is stopped on the license server, or RD Licensing isn't available.

Сброс 120-дневного льготного периода RDS (L$RTMTIMEBOMB)

Внимательно посмотрите на события в Event Viewer на хосте RDS. Возможно, там есть ошибка, подобная этой:

EventID: 1128
Source: TerminalServices-RemoteConnectionManagerThe RD Licensing grace period has expired and the service has not registered with a license server with installed licenses. A RD Licensing server is required for continuous operation. A Remote Desktop Session Host server can operate without a license server for 120 days after initial start up.

EventID: 1128EventID: 1128

RD License Diagnoser, скорее всего, также выдаст ошибку:

The grace period for the Remote Desktop Session Host server has expired, but the RD Session Host server hasn't been configured with any license servers. Connections to the RD Session Host server will be denied unless a license server is configured for the RD Session Host server.

Это означает, что льготный период для сервера RDSH истек, и вам необходимо продлить льготный режим или активировать хост на сервере лицензий RDS.

Льготный период RDS позволяет вам бесплатно использовать службы удаленных рабочих столов на Windows Server в течение 120 дней. Скорее всего, при входе в RDSH от имени администратора вы увидели ошибку:

Licensing mode for the Remote Desktop Session Host is not configured.
Remote Desktop Service will stop working in 86 days.

Количество дней до окончания льготного периода RDS можно узнать из поднятой командной строки:

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays

rds get GetGracePeriodDays leftrds get GetGracePeriodDays left

Обратите внимание, что DaysLeft = 0. Это означает, что на этом хосте RDSH истек льготный период.

Чтобы продлить льготный период в RDS, необходимо удалить параметр реестра на сервере, который определяет время лицензирования льготного периода. Дата, определяющая льготный период RDS для сервера, хранится в параметре реестра reg_binary L$RTMTIMEBOMB (довольно забавное название -TIME BOMB….), расположенный в следующем ключе реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod

rds сброс GracePeriod через реестр L$RTMTIMEBOMBrds сброс GracePeriod через реестр L$RTMTIMEBOMB

Необходимо удалить параметр L$RTMTIMEBOMB из реестра. Однако администратор не обладает достаточными правами для этого.

Unable to delete all specified values.

невозможно удалить параметр реестране удается удалить параметр реестра

Чтобы удалить этот параметр реестра, нужно открыть разрешения родительского ключа и предоставить своей учетной записи привилегии владельца ключа. Затем установите разрешения Full Control для группы Administrators (я не буду подробно описывать этот процесс).

rd льготный период reg key grant admin permissionsrd grace period reg key grant admin permissions

Теперь щелкните правой кнопкой мыши параметр L$RTMTIMEBOMB и удалите его.

клавиша удаленияклавиша удаления

Перезапустите сервер RDSH и подключитесь к нему с помощью клиента RDP. Убедитесь, что RDS CAL был успешно выпущен с помощью диспетчера лицензирования удаленных рабочих столов.

лицензия rds выданалицензия рдс выдана

Если RDS CAL не получена, проверьте наличие события в средстве просмотра событий:

Event ID: 1130
Source: TerminalServices-RemoteConnectionManager The Remote Desktop Session Host server does not have a Remote Desktop license server specified. To specify a license server for the Remote Desktop Session Host server, use the Remote Desktop Session Host Configuration tool.

Идентификатор события : 1130 Источник : TerminalServices-RemoteConnectionManagerИдентификатор события : 1130 Источник : TerminalServices-RemoteConnectionManager

С помощью этой команды PowerShell проверьте, установлен ли сервер лицензирования RDS:

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

wmi GetSpecifiedLicenseServerListwmi GetSpecifiedLicenseServerList

Как видно, сервер лицензирования RDS не установлен (SpecifiedLSList пуст). Принудительно установите сервер лицензирования RD с помощью следующей команды:

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.SetSpecifiedLicenseServerList("lon-rdslic.woshub.com")

Вы также можете установить имя сервера лицензирования и тип лицензии с помощью GPO групповой политики. Если вы используете локальный GPO, запустите gpedit.msc и перейдите в раздел Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Хост сеансов удаленных рабочих столов -> Лицензирование. Установите следующие параметры:

  • Использовать указанные серверы лицензий Remote Desktop
  • Установите режим удаленного лицензирования

настройка параметров лицензирования rds через gpoнастройка параметров лицензирования rds через gpo

Теперь хост RDS сможет получать лицензии с сервера лицензирования RDS и выдавать их пользователям RDP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *