Windows Server 2012 R2 Remote Desktop Connection Broker - Подключение было запрещено, так как учетная запись пользователя не имеет прав для удаленного входа в систему.

imageВ продолжение темы, ранее описанной в заметке Windows Server 2012 R2 Remote Desktop Connection Broker — Невозможно подключиться к высоко-доступной ферме RDS — Подключение было запрещено… один из комментаторов к этой заметке навёл на идею использовать для подключения к высоко-доступному экземпляру RDCB вместо специально настроенного RDP-файла на стороне клиентов, настройку параметра реестра DefaultTsvUrl на серверах RDCB.

В общем случае, как я понял из статьи Ask the Performance Team Blog - Walkthrough on Session hint / TSVUrl on Windows Server 2012, этот параметр реестра используется для совместимости RDCB в Windows Server 2012/R2 с RDP клиентами, которые не умеют принимать дополнительные параметры через RDP-файлы. Этот параметр способен принимать имя основной коллекции сеансов, к которой должны перенаправляться все пользователи, подключающиеся к серверам RDCB без явной передачи параметров нужной коллекции. В случае если у вас используется всего одна коллекция, то настройка параметра реестра DefaultTsvUrl на серверах RDCB снимет необходимость в формировании и распространении по клиентам специально сформированного RDP-файла.

В первую очередь, нам потребуется определить имя коллекции, к которой должны подключаться все клиенты, не имеющий явной направленности в ту или иную коллекцию. Это имя имеет специальный формат вида tsv://<TSVURL>

На сервере с ролью RDCB найдём значение параметра RDPFileContents в ключах реестра вида:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\<Collection>\RemoteDesktops\<Collection>

или

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\<Collection>\Applications\<RAApplication>\

Скопируем значение из параметра реестра RDPFileContents в текстовый редактор и убедимся в том, что фактически это содержимое RDP-ярлыка которое доступно нам как RemoteApp приложение с веб-странички RD Web Access и совпадает со значением, о котором мы говорили ранее.

image

Копируем это значение в новый параметр реестра DefaultTsvUrl (тип REG_SZ) в ключе:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\ClusterSettings

image

Так как серверов с ролью RDCB в нашем случае два, то и соответствующую правку реестра выполняем на обоих.

После этого проверяем подключение обычным RDP-клиентом на FQDN адрес DNS RR имени нашего высоко-доступного экземпляра RDCB и убеждаемся в том, что клиент успешно перенаправлен в заданную нами коллекцию сеансов по умолчанию. Более того, теперь у нас появится возможность подключаться и на отдельные узлы HA RDCB, и даже на отдельные серверы RDSH, сеансы которых управляются RDCB. И во всех случаях клиентское подключение должно успешно попадать в коллекцию сеансов по умолчанию с перенаправлением клиента в его сессию.

Всего комментариев: 29 Комментировать

  1. Дмитрий /

    Добрый день Алексей! Спасибо за статью.Но к сожалению у меня так и не получилось подключиться.При попытке подключения через RDP в Windows 7 например, появляется ошибка вида "Подключение не удается установить, поскольку удаленный компьютер с которым установлена связь отличается от указанного пользователем.Это может быть связано с тем что запись в кэше DNS устарела.Попробуйте использовать айпи вместо имени сервера" .
    Очищал кэш. Запись в реестре есть, имя коллекции верно..

  2. Дмитрий /

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

  3. Алексей Максимов / Автор записи

    Попробовал сейчас на Windows 7 подключиться к FQDN имени фермы RDCB голым mstsc.exe. Подключился. Правда получил предупреждение и недоверенном самоподписанном сертификате, получаемом с хоста RDSH, на который меня перекинул брокер, но это не удивительно. Так что само по себе подключение к дефолтной коллекции в брокере работает.

  4. Дмитрий /

    Доброго дня Алексей. Вобчем какая ситуация. Пересоздал всю коллекцию с нуля с именем FARM, скопировал tsv://MS Terminal Services Plugin.1.FARM на SRV-RDCB-01 в реестр. На клиенте в Win7 в RDP клиенте пишешь SRV-RDCB-01 и возникает вся та же ошибка. Хочу заметить у меня НЕ высокодоступный RDCB!!
    Но как только я в DNS создаю запись с любым именем указывающим на запись A c айпишником брокера SRV-RDCB-01, то вуаля- происходит подключение, но опять же с запросом сертификата сначала для брокера, затем уже для узла сеансов. Получается двойное подключение (сначала к брокеру, а уже потом к сеансу).
    Но все таки, почему по прямому имени брокера RDP клиент так яростно не хочет подключать.. ?

    1. Алексей Максимов / Автор записи

      Могу только предположить, что есть какие-то проблемы с сертификатом брокера.

  5. Дмитрий /

    К стати о сертификатах.Я так понимаю, что теперь можно назначать сертификаты только на сам RDCB и нет необходимости ставить их на узлы сеансов, если верить статье Ильи Сазонова ? -https://isazonov.wordpress.com/2014/03/10/windows-server-2012-r2-remote-desktop-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%8B/
    Либо все таки надо на каждый сервер свой сертификат- что бы данные предупреждения не сыпались ?
    Спасибо!

    1. Алексей Максимов / Автор записи

      В базовом сценарии при использовании подписанных RDP-файлов достаточно установки сертификата на RDCB.

  6. Дмитрий /

    Доброго дня Алексей!
    Вобчем все переустановил с нуля и с не доменного компутера попробовал подключится к брокеру.То же самое предупреждением о том, что я должен использовать именно имя фермы.Дословно -"Remote Desctop Connection cannot verify that the computers belong to the same RD Session Host server farm.You must use the farm name,not the computer name,when you connect to an RD Sesion Host server farm".
    Но как только в DNS задаешь любое имя на тот же самый айпишник брокера, то все подключается без проблем-правда как обычно с запросом несовпадения сертификата.....
    Что не так, или все таки надо имя коллекции,либо алиас для брокера писать в DNS ?

  7. Дмитрий /

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

  8. Дмитрий /

    Хотя с другой стороны наши тонкие клиенты все настроены подключаться только по айпишникам, так как они не в домене..

    1. Алексей Максимов / Автор записи

      Между "не в домене" и тем, что Вы не используете DNS по назначению нет никакой связи :)

  9. Дмитрий /

    Да, согласен;-) Вобчем тонким клиентам все равно...

  10. Дмитрий /

    Добрый день Алексей.
    Все таки проблема с ошибкой при подключении к брокеру присутствует и пока никак от нее не избавится.Тут набрел на следующую статью https://isazonov.wordpress.com/2012/03/28/%D0%BD%D0%B5%D1%83%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%D0%B5-%D0%B8%D0%BC%D1%8F-%D0%B2-%D1%84%D0%B5%D1%80%D0%BC%D0%B5-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D1%81%D0%B5/
    У меня три узла в ферме по имени srv-rdsh-01,srv-rdsh-02 и т.д. Сам же брокер с именем Srv-rdcb-01. Может быть в этом корень проблемы, то что я не могу подключиться по имени брокера даже после внесения изменений в реестр , а только как по айпи адресу ,хотя имя брокера не совпадает с именем коллекции ?
    Но хочу заметить, что через RDP который был скачан со страницы RDWeb подключение осуществляется успешно.

    Спасибо!

  11. Дмитрий /

    Вобчем работает только когда создаешь отдельную А запись в DNS на любое имя с указанием на айпишник брокера, тогда можно использовать обычный RDP для подключения по этому новому имени.
    Так как вы пробовали Алексей у меня к сожалению ругается на то что я писал выше.Remote Desctop Connection cannot verify that the computers belong to the same RD Session Host server farm.You must use the farm name,not the computer name,when you connect to an RD Sesion Host server farm
    Что только не перепробовал и сертификаты назначал, все равно не работает.

  12. Дмитрий /

    Алексей добрый день еще раз.
    Если я правильно понимаю, то само имя брокера для перенаправления RDP клиента на узлы сеансов использовать нельзя, так как брокер является частью самой фермы ? То есть НУЖНО использовать любое другое (виртуальное) имя указывающее на айпи адрес брокера ? Для примера, в DNS A запись для самого брокера имеет вид srv-rdcb-01 A 10.106.5.150 и по идее использовать само имя srv-rdcb-01 в RDP клиенте я не могу (возникает ошибка подключения как я указал выше), а вот если я создам А запись допустим на имя farm A 10.106.5.150, то через брокер я буду перенаправлен на любой из узлов коллекции .Правда тут появляется необходимость в правильном назначении сертификатов на само имя farm и с указанием SAN имен на все узлы коллекции, так как имена будут уже различаться так ?
    Тогда остается вопрос, как работает тот RDP файлик, который на странице RDWeb имеется для коллекции по умолчанию , ведь в данном RDP прописано именно FQDN самого брокера srv-rdcb-01 ?
    Спасибо!

    1. Алексей Максимов / Автор записи

      Я никогда не использовал конфигурации с единственным брокером, возможно поэтому и не сталкивался с описанными Вами проблемами. Сейчас у меня ферма из двух выделенных брокеров. Для фермы используется виртуальное имя (DNS RR) указывающее IP адресы брокеров и всё хорошо.

  13. cobion /

    Ну в общем понятно.У нас к сожалению на два брокера пока нету виртуалок свободных по лицензиям, будем работать с одним брокером->думаю что обойдется пока.
    С виртуальным именем в DNS почти все так же как и с фермой под WS 2008 R2.
    Осталось только с сертификатами решить до конца, а то ругательств много при подключении.
    Да , к стати хотел спросить у Вас - бывает такое , что клиент RDP очень долго подключается к удаленным рабочим столам- может ли это быть ка кто связано с правильной установкой сертификатов на сервере ?
    Спасибо.

  14. sasha@odarchuk.com /

    Коллеги, а как быть если имется 2 коллекции, на каждую из них свои RDSHы и своя группа юзеров. Опубликованных ремоут_апп - нет. Нужно что б взависимости от юзера он подключался на нужные RDSHы используя обычный RDP-клиент и подключаясь на FQDN адрес DNS RR имени нашего высоко-доступного экземпляра RDCB. Такое реально???

  15. Антон /

    Алексей, добрый день!
    Подскажите, правильно ли я понимаю что 3389 порт надо открывать на RDSH (3 штуки) сервера так же как и на RDCB (2 штуки) на межсетевых экранах сети?
    На RDCB так же подняты роди WEb доступа и к ним открыт порт 443.

  16. sergey /

    День добрый решение интересное и работает.
    только как теперь зайти на сам брокер по РДП ? ругается и не пускает . ни по имени брокера ни по его ip.

    1. odarchuk /

      попробуйте через mstsc /admin

      1. sergey /

        Да, это работает . и на сами хосты тоже.

  17. Максим Семенов /

    Всем привет. Прошу помощи, если тема еще жива. И так, что я имею.
    Два Windows server 2008r2, оба в кластере. на них установлен брокер RDCB
    Так же имею 2 сервера Win2008r2 со службой удаленных рабочих столов RDSH
    Мне нужно, что бы меня брокер перекидывал на мои RDSH.
    Но что я только не делал, у меня не получается как надо.
    То есть он может меня кинуть на сам брокер, а может на RDSH.

  18. Иван /

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

    1. sergey /

      проверьте настройку безопасности подключения.
      свойства rdp коллекции раздел безопасность .
      там обычно понижают шифрование чтобы старые ХР могли подключаться . и это приводи на некоторых машинах к двойной авторизации. еще может быть у вас в домене настроен запрет передачи данных для сквозной авторизации (по средством этой настройки работает сохраненный пароль в настройках mstsc если есть запрет - то сохраненный пароль не сработает. ).

  19. Alex /

    Всем доброго дня. Подскажите пожалуйста, в домене собрана ферма, rdcb (200й IP) он же шлюз он же лиц. сервер, есть коллекция RDCollection, в ней 1 тачка терминал сервера сессии - rds (210й IP), домен пусть будет vasya.com

    Проблема подключается ТОЛЬКО через шлюз и вся балансировка и тд, как ни пробовал через брокера напрямую - никак, в итоге после прописания tsv://... при подключении на 200й адрес, начал подключаться, но говорит, что в итоге не может подключиться к rds.vasya.com как переделать все на IP?

    Есть ключи реестра, 100% там еще моменты надо учитывать и прописать верно типа DeploymentServer... SessionDerictory... и т.д. Подскажите, если не сложно, как работать с брокером и не использовать шлюз? Подключения к брокеру изнутри, все в одной локалке 192.168.0.0/16

    Спасибо!

  20. sergey /

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

    шлюз если не нужен можно отключить .
    ip адрес фермы в dns посылай на брокер.

  21. Alex /

    Собрал в песочнице вообще левый домен, брокер, терминал, клиент, все. В брокере прописал tsv://коллекция... Делаю стандартный mstsc на broker.ferma.zlo мне сообщает о том, что: вы подключаетесь к broker.ferma.zlo, вас перенаправляет на terminal.ferma.zlo не может проверить принадлежность компьютеров к одной ферме. Оба ПК в домене: broker.ferma.zlo он же DC.

  22. Alex /

    Решение: или выключаем CredSSP - лучший вариант для меня по крайней мере или в файл RDP дописываем строку: enablecredsspsupport:i:0

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