Есть Server 2008 R2 к нему подключается 4 пользователя (Windows7) и всё работает. А новый ноутбук с Windows8 не может подключиться, сначала он 2 дня работал, потом вылезло сообщение «доступ к требуемому сеансу отклонен …».
пробовал зайти через «выполнить» mstsc / admin — подключиться получалось.
потом как всегда залез в реестр (на Windows8) удалил ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\HardwareID
теперь сообщение изменилось на такое: «Удаленному рабочему столу не удалось подключиться к удаленному компьютеру».
теперь именно к ЭТОМУ серверу именно с Windows8 не могу подключиться вообще (даже под администратором сервера), а к двум другим серверам спокойно подключаюсь с Windows8.
что мне нужно поправить и где на этой Windows8 ?
P.S. т.е. где то засело что нельзя подключиться только к этому серверу, пробовал программой RegOrganizer найти в реестре все записи на IP этого сервера и удалить, тоже не помогло.
В этой статье мы рассмотрим несколько распространенных ошибок, связанных с RDS лицензированием, когда RDP удаленные клиенты не могут подключится к терминальным серверам Windows Server с ролью Remote Desktop Services Host.
Ошибки лицензирования при подключении RDP клиентов к RDS хосту могут появляться, если:
- На хосте Remote Desktop Services не указан сервер RDS лицензирования, с которого нужно получить клиентские лицензии (RDS CAL);
- На сервере RDS Licensing закончились доступные клиентские лицензии;
- Клиент пытается подключиться с истекшей временной RDS лицензией;
Содержание:
- Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола
- Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов, которые могли бы провести лицензирование
- RDS Licensing Grace Period Has Expired (L$RTMTIMEBOMB)
Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола
Сначала рассмотрим ошибку, связанную с получением клиентами лицензий (RDS CAL) с сервера лицензирования.
Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer
Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола
В первую очередь вам нужно подключиться к RDSH серверу в административном режиме (
mstsc.exe /admin
) и запустить утилиту RD Licensing Diagnoser. Если у вас все настроено правильно, вы должны увидеть имя сервера лицензирования RDS, и тип лицензии (Per User/Per Device).
С помощью консоли RD Licensing Manager (
licmgr.exe
) подключитесь к серверу RDS лицензий и проверьте, что в вам доступны свободные лицензии нужного типа (Per User/Per Device). Если свободные лицензии закончились, нужно приобрести новый пакет CAL, дождаться пока кто-нибудь освободит лицензию или отозвать неиспользуемые лицензии прямо из консоли (Revoke License).
В данном примере видно, что RDS CAL есть, и они выдаются пользователям (Issued = 44).
Совет. Если ваш сервер RDSH развернут в рабочей группе (не в домене), то на нем нельзя использовать лицензии RDS CAL Per User. При подключении ваши пользователю всегда будут получать временную лицензию Per Device.
Скорее всего в этом случае клиентский компьютер пытается подключиться к вашему RDSH серверу со временной RDP лицензией с истекшим сроком (если при первом подключении клиента ваш RDS Licensing сервер был недоступен, клиенту была выдана временная лицензия на 180 дней). В этом случае нужно на клиенте сбросить эту просроченную лицензию в реестре.
На клиентском компьютере (в этом примере Windows 10), выполните следующее:
- Запустите редактор реестра
regedit.exe
; - Удалите ветку реестра HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing;
- Закройте редактор реестра и запустите mstsc.exe (Remote Desktop Connection) с правами администратора;
- Потом подключитесь к вашему RDS серверу. При этом ветка MSLicensing автоматически пересоздастся, и компьютер получит новую лицензию.
Если вы не запустили
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.
Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов, которые могли бы провести лицензирование
У одного из заказчиков появилась другая проблема с фермой терминальных серверов Remote Desktop Services на базе. По какой-то причине RDS сервер перестал выдавать терминальные лицензии пользователям, хотя роль сервера лицензий RDS установлена и настроена, а RDP CAL активированы.
Когда пользователь пытается подключится к терминальному серверу по RDP, появляется ошибка:
The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license. Please contact the server administrator.
В русской версии Windows ошибка выглядит так:
Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов, которые могли бы провести лицензирование.
Подключитесь к консоли сервера в административном режиме (
mstsc /admin
). Запустите Server Manager, откройте настройки RDS (Remote Desktop Services -> Deployment Overview -> Tasks -> Edit Deployment Properties ) и проверьте что в конфигурации RDSH указан правильный сервер лицензирования (Remote Desktop License Server) и тип RDS CAL (Per Device или Per User).
Также можно проверить настройки сервера RDS лицензирования из PowerShell:
Get-RDLicenseConfiguration
Как мы видите, LicenseServer в конфигурации указан, и используется тип лицензирования PerUser.
Проверьте, что следующие порты не блокируются межсетевыми экранами при доступе с RDSH хоста до RDS LicenseingServer:
TCP:135, UDP:137, UDP:138, TCP:139, TCP:445, TCP:49152–65535 (RPC range)
. Если RDS License сервер не доступен, в окне 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.
RDS Licensing Grace Period Has Expired (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.
В 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 сервера (grace) истек, и вам нужно продлить grace режим, либо активировать хост на полноценном сервере лицензий RDS.
Количество дней до окончания RDS Grace Period можно узнать из
cmd.exe
с правами администратора командой:
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays
Обратите внимание, что
DaysLeft = 0
. Это означает, что на RDSH хосте истек Grace Period.
Чтобы продлить grace период в RDS нужно на сервере удалить параметр реестра, в котором задается время отсчета льготного периода лицензирования (grace period licensing). Дата, определяющая время окончания работы RDSH в режиме grace хранится в reg_binary параметре реестра L$RTMTIMEBOMB (довольно забавное имя –TIME BOMB …. ;), находящемся в ветке:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod
Вам нужно удалить из реестра параметр L$RTMTIMEBOMB. Однако, у администратора недостаточно прав для этого.
Unable to delete all specified values.
Чтобы удалить этот параметр реестра, нужно открыть разрешения родительской ветки и предоставить своей учетной записи права владельца на ветку. Затем дайте себе права RW на ветку (не буду подробно описывать сам процесс).
Теперь щелкните правой кнопкой по параметру L$RTMTIMEBOMB и удалите его.
Перезагрузите RDSH сервер и подключитесь к нему с клиента по RDP.
С помощь консоли Remote Desktop Licensing Manager проверьте, что RDS CAL лицензия выдана.
Если 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.
С помощью следующей PowerShell команды проверьте, задан ли сервер RDS лицензирования:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()
Как вы видите, сервер лицензирования RDS не задан (список
SpecifiedLSList
пуст). Следующая команда принудительно задаст адрес сервера лицензий RDS.
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.SetSpecifiedLicenseServerList("msk-rdslic.winitpro.ru")
Также можно задать имя сервера лицензирования и тип лицензии с помощью GPO. Если вы используете локальную политику, запустите gpedit.msc и перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing и настройте два параметра:
- Use the specified Remote Desktop license servers
- Set the Remote licensing mode
Теперь RDS хост сможет получать лицензии от сервера RDS Licensing и выдавать их вашим RDP пользователям.
В данной статье рассмотрим ошибку подключение к удаленному рабочему столу (RDP / RDS) Windows Server, которая может сопровождаться следующей ошибкой: Подключение к удаленному рабочему столу. Удаленный сеанс отключен, поскольку отсутствуют доступные серверы лицензирования удаленных рабочих столов, которые могли бы провести лицензирование. Обратитесь к администратору сервера.
Рассмотрим по порядку в чем может быть причина и как исправить данную ошибку:
1) Сервер не лицензирован на терминальные лицензии RDS.
— Для лицензирования терминального сервера можете воспользоваться инструкцией в нашей прошлой статье.
2) На сервере закончились доступные лицензии для подключения клиентских ПК. Например у Вас было куплено 10 RDS лицензий (User CAL / Device CAL) и Вы исчерпали доступный лимит на подключения. В этом случае, Вам необходимо приобрести дополнительные лицензии для новых подключений.
3) Возможно у Вы использовали временную лицензию RDS и она у Вас истекла, временная (триальная лицензия) выдается на 180 дней. Либо если Вы ранее активировали купленную лицензию RDS, но у Вас параллельно до этого была активирована временная бесплатная лицензия. Возможно клиентский ПК подключается именно к временной лицензии, а не к активированной.
Для сброса временной лицензии откройте редактор реестра горячими клавишами Win + R => regedit.exe и удалите ветку реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing
Закройте редактор реестра и далее запустите приложение mstsc.exe с правами администратора на клиентском ПК во избежании ошибок подключения.
Чтобы ошибка не повторялась, мы рекомендуем приобрести клиентские лицензии RDS / RDP, если у Вас их еще нет и активировать систему именно бессрочной лицензией. Для этого:
— Вам нужен ключ активации RDS User CAl или Device CAL, приобрести его можете в нашем каталоге.
— Удалите Все следы прошлой активации RDS по следующей инструкции.
— И активируйте сервер ключом для RDS, сделать это можете по инструкции.
4) Ошибка может так же заключаться в том, что у Вас установлена лицензия User CAL, но на сервере не установлен домен. User CAL (на пользователя) работает только при работающем домене, для серверов без домена нужен Device CAL. Если у Вас уже активирован «User CAL», то в настройках режима лицензирования смените параметр «На пользователя» на «На устройство». Подробнее в нашей прошлой статье.
Лицензионный ключ активации Windows Server 2022 от
На чтение 5 мин Просмотров 1.1к. Обновлено
Содержание
- Причины появления ошибки с созданием хранилища лицензий
- Проверка наличия ключа MSLicensing
- Что делать если в реестре нет ключа MSLicensing
- Проверка прав на ветку реестра
- Удаление MSLicensing
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik. В прошлый раз мы с вами успешно устранили ошибку, когда не удавалось сохранить RDP файл. Идем далее и сегодня опять поговорим про удаленное подключение к рабочему столу, обратился ко мне коллега из второй линии вот с такой проблематикой, у сотрудника при попытке подключения в RDP клиенте появлялась ошибка «Удаленный сеанс был отключен из за сбоя создания хранилища лицензий» и все соединение сбрасывалось. Давайте разбираться в чем дело, как это диагностировать и устранить, так как за текущую неделю у меня таких обращений было как минимум три.
Причины появления ошибки с созданием хранилища лицензий
Немного фактурки. Есть RDS ферма построенная на базе Windows Server 2022, в конце апреля 2024 некоторые пользователи стали жаловаться, что при попытке подключения на терминалах на другие сервера по RDP у них появляется ошибка:
Удаленный сеанс был отключен из за сбоя создания хранилища лицензий с запретом доступа. Запустите клиент удаленного рабочего стола с повышенными привилегиями. Код ошибки: 0x08. Расширенный код ошибки: 0x10b
После переподключения на другую ноду RDSH, у сотрудника все стало работать. Давайте смотреть, где может быть проблема. Данная ошибка в 99% случаев возникает из-за проблем с ключом реестра по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
Ключ реестра MSLicensing отвечает за информацию о лицензировании в операционной системе Windows. Этот ключ используется для хранения данных о лицензиях для удаленного рабочего стола (Remote Desktop) и других служб, требующих лицензирования. В случае проблем с лицензированием удаленного рабочего стола, изменения в ключе реестра MSLicensing могут помочь исправить проблему.
Код ошибки 0x08 обычно говорит, о двух вещах:
- У вас нет ключа MSLicensing, да такое бывает
- На ключе MSLicensing недостаточно прав для его изменения
- Повреждение ключа реестра
Проверка наличия ключа MSLicensing
Самый простой способ проверить наличие нужного ключа реестра, это воспользоваться PowerShell скриптом. Запустите на компьютере, где имеются проблемы с подключением PowerShell ISE в режиме администратора.
# Проверяем наличие ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\MSLicensing
if (Test-Path «HKLM:\SOFTWARE\Microsoft\MSLicensing») {
Write-Host «Ключ есть в реестре»
} else {
Write-Host «Ключ отсутствует в реестре»
}
Я не поленился и зашел в regedit через графический интерфейс, чтобы проверить, что там действительно нет данного ключа.
Если нужно массово проверить большой список серверов или компьютеров, то можно воспользоваться вот таким скриптом:
$computers = Get-Content -Path «C:\Temp\RDS\servers.txt«
foreach ($computer in $computers) {
$regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’, $computer)
$regSubKey = $regKey.OpenSubKey(«SOFTWARE\Microsoft\MSLicensing»)
if ($regSubKey -eq $null) {
Write-Output «$computer : False»
} else {
Write-Output «$computer : True»
}
$regKey.Close()
}
На выходе будет таблица вида: имя компьютера и значение True/False.
Что делать если в реестре нет ключа MSLicensing
Если на серверах, где имеется ошибка «Удаленный сеанс был отключен из за сбоя создания хранилища лицензий с запретом доступа» нет ключа MSLicensing, то самым правильным методом будет запуск mstsc от имени пользователя имеющего административные права, а еще лучше с ключом /admin. Запустите окно «Выполнить» и введите:
И подключитесь к любому удаленному серверу, где есть права. Главное, чтобы прошло успешное подключение. В результате данного действия у вас пересоздастся ветка реестра по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing
Проверка прав на ветку реестра
Код ошибки: 0x10b может появляться если на ключ MSLicensing назначены не верные права. В идеале права должны быть такие:
Вот пример простого PowerShell скрипта для выгрузки ACL списка на ключ реестра.
# Получить список ACL у ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\MSLicensing
$acl = Get-Acl «HKLM:\SOFTWARE\Microsoft\MSLicensing»
# Вывести список ACL в виде имени участника ACL и его типа прав в таблице
$acl.Access | Format-Table RegistryRights, AccessControlType, IdentityReference
Должно точно быть:
- Администраторы — Полные права — Этот раздел и подразделы
- Пользователи — Чтение — Этот раздел и подразделы
- Система — Полные права — Этот раздел и подразделы
- Все пакеты приложений — Чтение — Этот раздел и подразделы
- Создатель-Владелец — Полные права — Только подразделы
Если права не соответствует данной матрице, то вам нужно через кнопку добавить недостающих участников.
Удаление MSLicensing
Если предыдущие методы не помогли и у вас до этого был ключ MSLicensing, права на нем правильные и не работает, то остается такой метод. как удаление данного ключа MSLicensing, полностью.
Перед удалением через правый клик сделайте его экспорт для резервной копии
После удаления полной ветки HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\MSLicensing требуется перезагрузить систему. После этого запустив клиента RDP у вас будет полностью пересоздан данный ключ с нужными правами, например мы такое делали в статье «Удаленный сеанс отключен, клиентская лицензия, хранимая на этом компьютере, была изменена».
На этом у меня все. надеюсь. что вам удалось восстановить правильную работу подключения к удаленному рабочему столу, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.