Не удается подключиться к удаленному компьютеру реестр

Обновлено: 07.07.2024

Для чего может потребоваться удаленно подключиться к реестру Windows другого компьютера

Прежде, чем я покажу как реализовывается наша задача, я бы хотел осветить в каких ситуациях вам может быть полезным данное знание. Ранее я вам рассказывал, как запустить реестр в Windows, я вам рассказал, что все настройки в графическом виде, что вы видите и совершаете, на самом деле меняют ключи реестра в фоновом режиме, поэтому реестр - это и есть система управления Windows.

Недавно я вам рассказывал ситуацию, что мне нужно было удаленно включить на одном сервере Windows Server 2019 службу удаленного рабочего стола, чтобы я мог подключиться на него по RDP, и благодаря изменению ключей через удаленное подключение к реестру сервера (Сетевому реестру), задача была выполнена за пару минут. Так же у вас могут быть ситуации:

  • Вам необходимо посмотреть появился ли нужный ключ реестра после применения групповой политики, которую вы сделали
  • Добавить права для определенной группы, например сделать их администраторами или разрешить им подключение через Windows ассистента
  • Отключить брандмауэр
  • Удалить сбойный ключ реестра
  • Многое другое, практически любое изменение настроек, главное знать, где искать

Алгоритм подключения к удаленному реестру Windows

Предположим, что у меня в моем домене Active Directory есть контроллер домена с которого я попытаюсь подключить к реестру сервера RDCB01, где посмотрю ключи реестра и что-нибудь поправлю. Что делаем, нажимаем одновременно сочетание клавиш WIN+R.

WIN+R

У вас откроется окно "Выполнить", где вы должны ввести regedit.

окно выполнить regedit

В итоге у вас откроется окно редактора локального реестра Windows.

Открытие локального реестра Windows

Теперь, чтобы нам подключиться к реестру другого компьютера или сервера, вам необходимо выбрать меню файл, где необходимо найти пункт "Подключить сетевой реестр"

Подключить сетевой реестр Windows

В поле "Введите имена выбираемых объектов", укажите DNS имя вашего удаленного сервера, в моем примере это сервер с Windows Server 2019 под именем RDCB01 и нажимаем проверить имена, если все хорошо, то под именем появится подчеркивание, что означает о выявлении сервера с таким именем. Нажимаем ок и пробуем подключить сетевой реестр Windows.

Подключить сетевой реестр

В момент подключения, если на стороне удаленного сервера есть сетевые проблемы или брандмауэр, то вы можете увидеть вот такое предупреждение:

Не удается подключиться к серверу. Убедитесь, что компьютер включен в сеть, на нем разрешено удаленное управление, и что на обоих компьютерах запущена служба удаленного реестра

не запущена служба удаленного реестра

Если вы точно знаете, что удаленный компьютер должен отвечать на сетевые пакеты PING, то попробуем проверить его доступность, для этого откройте командную строку и введите:

Если вы видите, что "Превышен интервал ожидания для запроса", то это означает, что сервер не доступен, при условии, что как я и говорил пакеты PING не лочатся сетевым экраном. Если у вас видится время ответа TTL, то это означает, что сервер по сети доступен и с ним можно взаимодействовать, чтобы включить удаленно нужную службу

Проверка компьютера через Ping

Как нам писала ошибка выше, на обоих компьютерах должна быть запущена служба удаленного реестра. В командной строке вы можете проверить состояние данной службы для этого введите:

Как видим в моем примере у нее статус STOPPED

Запуск службы удаленного реестра

То же самое можно посмотреть и через PowerShell

Просмотр статуса службы в powershell

запустим у себя локально службу удаленного реестра.

Запуск службы Удаленный реестр

Так же можно тут же проверить доступность службы на удаленном компьютере:

Get-Service -Name "RemoteRegistry" -ComputerName rdcb01

Удаленная проверка состояния служб

Теперь попробуем запустить данную службу на удаленном сервере RDCB01, для этого откройте окно выполнить и введите в нем команду services.msc и нажмите Enter, у вас откроется оснастка службы.

Оснастка службы Windows

Щелкаем по службам и из контекстного меню выбираем пункт "Подключиться к другому компьютеру"

Подключиться к другому компьютеру

Указываем имя компьютера и нажимаем "OK".

Удаленное подключение к службам Windows

Если брандмауэр не блокирует подключение, то вы увидите успешное выполнение операции, если блокирует, то увидите ошибку:

Не удалось открыть базу данных диспетчера управления службами на сервере. Ошибка 1722: Сервер RPC недоступен

Ошибка 1722 RPC

Причин у ошибки "1722: Сервер RPC недоступен" несколько:

  • На удаленном компьютере не запущены две службы "Модуль запуска процессов DCOM-сервера" и "Удаленный вызов процедур (RPC)". Хочу отметить, что данные службы запускаются автоматически при старте системы
  • Вас блокирует брандмауэр, он не пропускает удаленное управление службой. Этот набор состоит из трех служб:
  1. Удаленное управление службой (RPC-EPMAP)
  2. Удаленное управление службой (Именованные каналы)
  3. Удаленное управление службой (RPC)

Удаленное управление службой RPC

Давайте мы удаленно включим данные правила, напоминаю, что для этого у вас должны быть права локального администратора на удаленном компьютере, понятно, что вы можете включить их локально, но машинка может быть в другом городе или стране. На помощь нам приходит в очередной раз Марк Руссинович и его набор утилит sysinternals. Из данного набора нам потребуется утилита PSTools, она позволит и удаленно запустить службу и при необходимости добавить правило в брандмауэр.

Загружаете данный архив с утилитами, распаковываете его в нужное вам место. Теперь зажав клавишу Shift щелкните правой кнопкой мыши по папке с утилитами и из контекстного меню выберите пункт "Открыть окно команд".

Открыть cmd для нужной папки

Введите вот такую команду:

PsExec.exe \\IP-адрес или DNS-имя компьютера -u domain\логин -p пароль cmd

Мой пример: PsExec.exe \\rdbc01 -u root\Администратор -p пароль cmd

Я наблюдаю успешное подключение к командной строке на удаленном компьютере RDCB01, там сейчас запущена служба PsExec.exe. Теперь на удаленной системе я могу делать все, что мне нужно.

Удаленное подключение к cmd

Вы можете на удаленном компьютере отключить брандмауэр на время, чтобы произвести настройки служб:

потом обратно включить netsh advfirewall set allprofiles state on (Обязательно включите после настроек)

Отключение и включение брандмауэра в cmd

Там будет вот так:

Удаленное отключение брандмауэра

Далее я вам советую включить на брандмауэре в разделе "Разрешение взаимодействия с приложениями или компонентом в брандмауэре", набор правил "Удаленное управление службой", это даст возможность цепляться к оснастке "Службы" на другом компьютере

Удаленное управление службой

Далее подключаетесь в оснастке службы к нужному хосту и запускаем службу "Удаленный реестр"

Запуск удаленного реестра

Служба удаленный реестр

Так же можно изначально прямо из командной строки включить нужную службу в PsExec.exe, я вам не показал, этого сразу, чтобы вы могли настроить для себя брандмауэр. Проверим статус службы:

Далее запустим службу sc start RemoteRegistry

Как видим служба RemoteRegistry успешно запущена, при чем удаленно.

Удаленное включение службы

Пробуем подключиться к удаленному, сетевому реестру, теперь у нас не возникает проблем и мы видим, что добавился новый раздел RDCB01.

Отсутствует клиентская лицензия удаленного рабочего стола

Способы устранения ошибки

Пример ошибки подключения к удаленному компьютеру

Способ 1: Удаление веток реестра

Первый метод заключается в удалении определенных ключей реестра, связанных с лицензиями RDP. Благодаря данному подходу можно обновить временные лицензии и вместе с тем избавиться от проблем по части кэширования устаревших записей.

    На клавиатуре воспользуйтесь комбинацией клавиш «Win+R» и введите следующий запрос.

Ввод запроса regedit в окне Выполнить

Переход к ветке SOFTWARE в реестре Windows

Переход к ветке Microsoft в реестре Windows

Примечание: Не забывайте делать копию изменяемых ключей.

Удаление ключа MSLicensing в реестре Windows

Подтверждение удаления ключа реестра Windows

Переход к ветке Wow6432Node в реестре Windows

Процесс перезапуска компьютера через Пуск

Запуск RDP от имени администратора

Если вы все сделали правильно, стабильная работа RDP будет восстановлена. В противном случае переходите к следующему разделу статьи.

Способ 2: Копирование веток реестра

    В соответствии с инструкцией из первого способа на ПК с Win 7 откройте реестр и найдите ветку «MSLicensing». Кликните по данному разделу правой кнопкой мыши и выберите пункт «Экспортировать».

Переход к сохранению ветки реестра Windows

Процесс сохранения ветки MSLicensing на компьютере

Импорт ветки MSLicensing на компьютере

Подтверждение импорта ветки реестра на ПК

Успешный импорт ветки реестра на ПК

Примечание: Несмотря на различия в версиях ОС, ключи реестра работают должным образом.

После выполнения описанных в данной инструкции действий ошибка должна исчезнуть.

Заключение

Рассмотренные способы позволяют избавиться от ошибки отсутствия клиентских лицензий в большинстве случае, но все же не всегда. Если настоящая статья не помогла вам с решением проблемы, оставляйте свои вопросы нам в комментариях.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Проверка состояния протокола RDP

Проверка состояния протокола RDP на локальном компьютере

Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе How to enable Remote Desktop (Как включить удаленный рабочий стол).

Проверка состояния протокола RDP на удаленном компьютере

В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.

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

Редактор реестра, в котором отображается запись fDenyTSConnections

  1. Сначала откройте меню Пуск и выберите Выполнить. В появившемся текстовом поле введите regedt32.
  2. В редакторе реестра нажмите Файл и выберите пункт Подключить сетевой реестр.
  3. В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  4. Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server и в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.
    • Если раздел fDenyTSConnections имеет значение 0, значит протокол RDP включен.
    • Если раздел fDenyTSConnections имеет значение 1, значит протокол RDP отключен.
  5. Чтобы включить протокол RDP, для fDenyTSConnections замените значение 1 на 0.

Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере

Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.

Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:

Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.

Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.

Пример сегмента gpresult.html, в котором показано, что объект групповой политики на уровне домена Block RDP блокирует протокол RDP.

Если же для параметра этой политики задано значение Отключено, проверьте результирующий объект групповой политики. Ниже показано, какой объект групповой политики блокирует подключения по протоколу RDP.

Пример сегмента gpresult.html, в котором объект групповой политики уровня домена Local Group Policy блокирует протокол RDP.

Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере

Чтобы проверить конфигурацию групповой политики на удаленном компьютере, нужно выполнить почти такую же команду, что и для локального компьютера.

В файле (gpresult-<computer name>.html), который создается после выполнения этой команды, используется такой же формат данных, как в версии файла для локального компьютера (gpresult.html).

Изменение блокирующего объекта групповой политики

Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).

Чтобы изменить блокирующую политику, используйте один из следующих методов.

  • В GPE укажите определенный уровень для объекта групповой политики (локальный или доменный) и выберите Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удаленных рабочих столов > Узел сеансов удаленных рабочих столов > Подключения > Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
    1. Задайте для политики значение Включена или Не задана.
    2. На затронутых компьютерах откройте окно командной строки с правами администратора и выполните команду gpupdate /force.
  • В GPM перейдите к подразделению, в котором блокирующая политика применяется к соответствующим компьютерам, и удалите эту политику.

Проверка состояния служб RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) должны быть запущены следующие службы:

  • службы удаленных рабочих столов (TermService);
  • перенаправитель портов пользовательского режима служб удаленного рабочего стола (UmRdpService).

Для локального или удаленного управления службами можно использовать оснастку MMC. Вы также можете использовать PowerShell для управления службами в локальном или удаленном расположении (если удаленный компьютер настроен для приема удаленных командлетов PowerShell).

Службы удаленных рабочих столов в оснастке MMC "Службы" Не изменяйте параметры служб, заданные по умолчанию.

На любом компьютере запустите одну или обе службы, если они запущены.

Если вы запускаете службу удаленных рабочих столов, нажмите кнопку Да, чтобы служба перенаправителя портов пользовательского режима служб удаленного рабочего стола перезапустилась автоматически.

Проверка состояния прослушивателя протокола RDP

В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.

Проверка состояния прослушивателя RDP

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

Чтобы подключиться к удаленному компьютеру, выполните следующий командлет:

Команда qwinsta выводит список процессов, которые ожидают передачи данных через порты компьютера.

Введите qwinsta.

Если в списке содержится rdp-tcp с состоянием Listen, прослушиватель протокола удаленного рабочего стола работает. Перейдите к разделу Проверка порта прослушивателя протокола RDP. В противном случае перейдите к шагу 4.

Экспортируйте конфигурацию прослушивателя RDP с рабочего компьютера.

  1. Войдите на компьютер с той же версией операционной системы, что и у затронутого компьютера, и получите доступ к реестру компьютера (например, с помощью редактора реестра).
  2. Перейдите к следующей записи реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. Экспортируйте запись в REG-файл. Например, в редакторе реестра щелкните запись правой кнопкой мыши, выберите пункт Экспортировать, а затем введите имя файла для экспортируемых параметров.
  4. Скопируйте экспортированный REG-файл на затронутый компьютер.

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

Чтобы создать резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

Чтобы удалить резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

Чтобы импортировать новую запись реестра и перезапустить службу, воспользуйтесь такими командлетами:

Замените <filename> именем экспортированного REG-файла.

Проверьте конфигурацию, попытавшись еще раз подключиться к удаленному рабочему столу. Если подключиться все равно не удается, перезагрузите затронутый компьютер.

Проверка состояния самозаверяющего сертификата протокола RDP

Сертификаты удаленного рабочего стола в оснастке MMC "Сертификаты".

  1. Если подключиться так и не удалось, откройте оснастку MMC "Сертификаты". Когда будет предложено выбрать хранилище сертификатов для управления, выберите Учетная запись компьютера и затронутый компьютер.
  2. В папке Сертификаты в разделе Удаленный рабочий стол удалите самозаверяющий сертификат протокола RDP.
  3. На затронутом компьютере выполните следующие действия, чтобы перезапустить службу удаленных рабочих столов.
  4. Обновите оснастку диспетчера сертификатов.
  5. Если самозаверяющий сертификат протокола RDP не был создан повторно, проверьте разрешения для папки MachineKeys.

Проверка разрешений для папки MachineKeys

  1. На затронутом компьютере откройте проводник и перейдите к папке C:\ProgramData\Microsoft\Crypto\RSA\ .
  2. Щелкните правой кнопкой мыши папку MachineKeys, а затем выберите Свойства, Безопасность и Дополнительно.
  3. Убедитесь, что настроены следующие разрешения:
    • Builtin\Администраторы: Полный доступ
    • Все: чтение и запись.

Проверка порта прослушивателя протокола RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) прослушиватель протокола RDP должен ожидать передачи данных через порт 3389. Другие приложения не должны использовать этот порт.

В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.

Чтобы проверить или изменить порт протокола RDP, используйте редактор реестра:

Подраздел PortNumber для протокола RDP.

  1. Откройте меню Пуск, выберите Выполнить и введите regedt32 в появившемся текстовом поле.
    • Чтобы подключиться к удаленному компьютеру, в редакторе реестра щелкните Файл и выберите пункт Подключить сетевой реестр.
    • В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  2. Откройте реестр и перейдите к записи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener> .
  3. Если PortNumber имеет значение, отличное от 3389, укажите значение 3389.

Для управления службами удаленного рабочего стола можно использовать другой порт. Но мы не рекомендуем делать это. В этой статье не описано, как устранять проблемы, связанные с этим типом конфигурации.

Проверка того, что другое приложение не пытается использовать тот же порт

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

Откройте окно PowerShell. Чтобы подключиться к удаленному компьютеру, введите Enter-PSSession -ComputerName <computer name> .

Введите следующую команду:

Команда netstat выводит список портов, которые должны прослушивать службы.

Найдите запись для TCP-порта 3389 (или назначенного RDP-порта) с состоянием Ожидает вызова.

Идентификатор процесса службы или процесса, использующих этот порт, отобразится в столбце "Идентификатор процесса".

Чтобы определить, какое приложение использует порт 3389 (или назначенный порт протокола RDP), введите следующую команду:

Команда tasklist выводит данные об определенном процессе.

Найдите запись для номера процесса, связанного с портом (в выходных данных netstat). Службы или процессы, связанные с этим идентификатором процесса, отобразятся в столбце справа.

Если порт используется приложением или службой, отличающейся от служб удаленных рабочих столов (TermServ.exe), устранить конфликт можно с помощью одного из следующих методов:

  • В настройках такого приложения или службы укажите другой порт (рекомендуется).
  • Удалите другое приложение или службу.
  • В настройках протокола RDP укажите другой порт, а затем перезапустите службы удаленных рабочих столов (не рекомендуется).

Проверка блокировки порта протокола RDP брандмауэром

С помощью средства psping проверьте, доступен ли затронутый компьютер через порт 3389.

Откройте окно командной строки с правами администратора, перейдите в каталог, где установлено средство psping, и введите следующую команду:

Проверьте выходные данные команды psping на наличие таких результатов:

  • Подключение к <computer IP>: удаленный компьютер доступен.
  • (0% loss) (0 % потерь): все попытки подключения выполнены успешно.
  • The remote computer refused the network connection (Удаленный компьютер отклонил сетевое подключение): удаленный компьютер недоступен.
  • (100% loss) (100 % потерь): не удалось выполнить подключение.

Запустите psping на нескольких компьютерах, чтобы проверить возможность подключения к затронутому компьютеру.

Проверьте, блокирует ли этот компьютер подключения от всех остальных компьютеров, некоторых других компьютеров или только одного компьютера.

Доброго времени суток! Иногда при подключении у к серверу терминалов через клиент «Подключение к удаленному рабочему столу», может возникнуть ошибка: «Удаленный сеанс отключен, поскольку отсутствуют клиентские лицензии удаленного рабочего стола.» В данной статье я хочу описать причины возникновения данной ошибки и предложу возможные решения этой проблемы.

Итак, при подключению к серверу терминалов по протоколу RDP возникает ошибка: «Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола.»

oshibka-rdp-2_01

  1. Для службы удаленных рабочих столов на сервере терминалов не настроен сервер лицензирования.
  2. На сервере лицензирования не осталось клиентских лицензий доступа (CAL).

Рассмотрим эти ситуации более подробно, а также обозначим способы их устранения .

1. Настройка сервера лицензирования

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

Если прежде подключение через удаленный рабочий стол к серверу терминалов работало, то возможно данному клиенту была выдана временная лицензия на 180 дней, и срок этой лицензии уже истек. Для того чтобы заново получить временную лицензию необходимо на клиентской машине удалить из реестра сведения о действующей просроченной лицензии.

oshibka-rdp-2_05

oshibka-rdp-2_09

Настоятельно рекомендуется при любом изменении реестра делать его копию, для восстановления работоспособности Windows либо программ в случае возникновении проблем.

В запустившемся редакторе реестра необходимо удалить следующий каталог:

oshibka-rdp-2_10

После удаления, нужно обязательно запустить клиента «Подключение к удаленному рабочему столу» с правами «Администратора», для того чтобы в реестре прописалась новая временная лицензия.

oshibka-rdp-2_11

2. Нехватка CAL-лицензий

Если на сервере лицензирования, который лицензирует данный сервер терминалов, закончились лицензии, необходимо дождаться пока кто-либо освободит лицензию, либо приобрести и активировать необходимое число CAL-лицензий.

Просмотреть общее, занятое и доступное количество лицензий можно в оснастке «Лицензирование сервера терминалов». Чтобы открыть данную оснастку в MS Windows Server 2008 нужно последовательно зайти в меню «Пуск» — «Администрирование» — «Службы удаленных рабочих столов» — «Диспетчер лицензирования удаленных рабочих столов»

oshibka-rdp-2_02

Далее следует выбрать свой сервер лицензирования, нажать «Действие» и «Создать отчет». Этот отчет покажет:

  • дату и время создания отчета;
  • область отчета, например Domain, OU=Sales или All trusted domains;
  • число Клиентских лицензий служб удаленных рабочих столов «на пользователя», установленных на сервере лицензирования;
  • число Клиентских лицензий служб удаленных рабочих столов «на пользователя», выданных сервером лицензирования с учетом заданной области отчета.

oshibka-rdp-2_03

Созданные отчеты отображаются на вкладке «Отчеты» в Диспетчере лицензирования удаленных рабочих столов.

oshibka-rdp-2_04

Смотрите также:

В данной статье будет подробно описан набор действий, который необходимо выполнить для получения программной лицензии для клиента «1С:Предприятие» версии 8.3 (в версиях 8.2 и 8.1 набор действий аналогичен) в автоматическом режиме. …

Наряду с аппаратными LPT и USB-ключами типа HASP4 Net, программные продукты «1С:Предприятие» могут быть защищены от копирования при помощи системы программного лицензирования. Данная система обеспечивает совместную работу пользователей без каких-либо дополнительных физических…

date

12.03.2021

directory

Windows 10, Windows Server 2012 R2, Windows Server 2016

comments

комментариев 15

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

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

  • На хосте Remote Desktop Services не указан сервер RDS лицензирования, с которого нужно получить клиентские лицензии (RDS CAL);
  • На сервере RDS Licensing закончились доступные клиентские лицензии;
  • Клиент пытается подключиться с истекшей временной RDS лицензией;

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

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

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

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

RD Licensing Diagnoser

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

список выданных rds cal лицензий

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

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

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

На клиентском компьютере (в этом примере Windows 10), выполните следующее:

Если вы не запустили mstsc.exe с правами администратора, то при любом RDP подключении будет появляться ошибка:

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

У одного из заказчиков появилась другая проблема с фермой терминальных серверов Remote Desktop Services на базе. По какой-то причине RDS сервер перестал выдавать терминальные лицензии пользователям, хотя роль сервера лицензий RDS установлена и настроена, а RDP CAL активированы.

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

В русской версии Windows ошибка выглядит так:

The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license

Подключитесь к консоли сервера в административном режиме ( 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).

Настройки RD licensing

Также можно проверить настройки сервера 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 будет ошибка:

RDS Licensing Grace Period Has Expired (L$RTMTIMEBOMB)

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

A Remote Desktop Session Host server can operate without a license server for 120 days after initial start up

В RD License Diagnoser скорее всего также будет отображаться ошибка:

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

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

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

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

GetGracePeriodDays команда позволяет узнать сколько дней осталась до окончания пробной периода сервера rdsh

Обратите внимание, что DaysLeft = 0 . Это означает, что на RDSH хосте истек Grace Period.

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

L$RTMTIMEBOMB ключ, в котором считается grace period работы терминального сервера rds

Вам нужно удалить из реестра параметр L$RTMTIMEBOMB. Однако, у администратора недостаточно прав для этого.

не удается удалить в реестра windows server параметр L$RTMTIMEBOMB

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

получить разрешение для удаления ветки реестра

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

Удалить ключ L$RTMTIMEBOMB

Перезагрузите RDSH сервер и подключитесь к нему с клиента по RDP.

С помощь консоли Remote Desktop Licensing Manager проверьте, что RDS CAL лицензия выдана.

Не выдаются лицензии RD

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

Event-ID 1130 TerminalServices-RemoteConnectionManager

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

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

не задан сервер лицензирования на RDS, проверить содержимое объекта из powershell

Как вы видите, сервер лицензирования 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

групповая политика для настройки параметров лицнезирования Remote Desktop Services

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

Читайте также: