Несмотря на то, что Microsoft за последние несколько лет портировала свой RDP клиент под различные платформы (iOS, macOS, Android, есть даже отдельное UWP приложение для Windows 10), многим пользователям хотелось бы получать удаленный RDP доступ к RDS серверам и опубликованным приложениям из любого браузера. Для этих целей Microsoft несколько лет разрабатывала отдельный Remote Desktop Web Client на базе HTML5. Совсем недавно была выпушена первая официальная версия RD Web Client. В этой статье мы рассмотрим, как установить и настроить Remote Desktop Web Client и использовать его для доступа к RemoteApp на RDS сервере с Windows Server 2016 из обычного браузера.
Требования к инфраструктуре веб клиента Remote Desktop
Remote Desktop Web Client пока доступен как расширение для роли RD Web Access на RDS серверах под управлением Windows Server 2016/2019.
Перед внедрением RD Web Client нужно убедится, что ваша RDS инфраструктура соответствует следующим требованиям:
- Наличие развернутой инфраструктуры RDS, включающей шлюз Remote Desktop Gateway, RD Connection Broker и RD Web Access на Windows Server 2016/2019;
- Используются терминальные лицензии (RDS CAL) в режиме Per User;
- На серверах RDS Gateway и Web Access должны использоваться SSL сертификаты, выданные доверенным CA (самоподписанные сертификаты SSL использовать нельзя);
- В качестве RDP клиентов можно использовать только Windows 10 или Windows Server 2008 R2 (и выше);
- На RDS серверах нужно установить обновление (KB4025334 – от 18 июля 2017 года), или любое следующее кумулятивное обновление для Windows Server.
Установка RD Web HTML5 клиента на Windows Server 2016 RDS
Как мы уже говорили, на данный момент доступна версия RD Web Client для Windows Server 2016 / 2019, однако на текущий момент этот компонент не входит в состав дистрибутива WS 2019 и устанавливается отдельно.
На сервере с ролью RD Web Access необходимо установить модуль PowerShellGet:
Install-Module -Name PowerShellGet -Force
Закройте консоль PoSh и запустите еще раз. Теперь нужно установить модуль RD Web Client Management:
Install-Module -Name RDWebClientManagement
Чтобы принять лицензионное соглашение Microsoft, введите A.
Теперь нужно установить последнюю версию пакета Web Remote Desktop:
Install-RDWebClientPackage
После установки пакета, проверьте его свойства командой:
Get-RDWebClientPackage
Как вы видите, у вас появился пакет rd-html 5.0 версия 1.0.0.
Далее вам нужно с сервера с ролью RDS Broker экспортировать SSL сертификат, использующийся для SSO (Enable Single Sign On) в .cer файл (BASE64) Можно выполнить экспорт из графической оснастки управления сертификатами компьютера certlm.msc, нужный сертификат находится в разделе Personal\Certificates.
Импортируйте сертификат на сервере RD Web:
Import-RDWebClientBrokerCert C:\RDBroker.cer
Теперь можно опубликовать клиент RD Web:
Publish-RDWebClientPackage -Type Production -Latest
Publish-RDWebClientPackage -Type Test -Latest
Доступ к RDWeb серверу через браузер с поддержкой HTML5
После того, как вы развернули пакет Web Client на RDS сервере, вы можете запустить браузер на клиентском компьютере. Поддерживаются все последние версии браузеров Edge, IE 11, Google Chrome, Safari и Firefox (пока веб клиент RD работает далеко не на всех мобильных устройствах). Для доступа к RDS серверам из браузера вам достаточно передать пользователям ссылку на сервер RDWeb.
Откройте URL адрес:
_https://FQDN.server.name/RDWeb/webclient/index.html
Для доступа к тестовой среде используйте адрес:
_https://FQDN.server.name /RDWeb/WebClient-Test/index.html
Имя сервера должно соответствовать имени сервера RD Web Access в сертификате.
Авторизуйтесь на RDWeb сервере под своей учетной записью.
При входе у вас будет запрошено какие локальные ресурсы должны быть доступны в RD сессии. Пока доступно только перенаправление буфера обмена и принтеров (локальные диск и USB устройства через веб-клиент RDP не пробрасываются, нужно использовать тяжёлый клиент mstsc.exe)
Перед вами должен появится список опубликованных RemoteApps и RDP ярлыков. Вы можете переключаться между ними с помощью иконок в верхней части окна.
Печать из RD Web клиента осуществляется через виртуальный PDF принтер (Microsoft Print to PDF). Вы отправляете документ на печать в окне веб клиента и браузер предлагает скачать сформированный pdf файл, который можно открыть и распечатать на локальный принтер.
В HTML5 доступно динамическое изменение окна удаленного рабочего стола и возможность запуска в полноэкранном режиме. Через буфер обмена можно копирвать только текст (файлы, графика через буфер веб клиента не копируются).
Что интересно, в RDP веб клиенте теперь видно количество памяти и CPU на RDS сервере, которое использует то или иное приложение. Просто щелкните по значку опубликованного приложения.
А можно получить доступ к полноценному сеансу на RDSH-сервере через браузер или только к опубликованным ремоут-апп?
Да, можно. Просто опубликуйте приложение mstsc.exe и подключайтесь к любым серверам по RDP.
Вот только публиковать это через родные Application Proxy невозможно, мол используйте Azure Application proxy.
А у меня почему-то не работает буфер обмена и принтер. Куда копать?
Где-то в панели RD Web клиента ищите галочки для проброса в сесиию буфера обмена и принтера (по умолчанию отключны).
А как отключить возможность печати?
Скорее всего как и на обычном RDS сервере — с помощью политики Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Printer Redirection -> Do not allow client printer redirection.
А можно ли в рамках «тестовой лаборатории» из 2-3 виртуалок не использовать SSL (или самоподписанные)? Какой-то минимальный набор развернуть, чтобы просто посмотреть возможности работы, и общий «user experience»?
Поискал в интернете оказывается возможно использование самоподписанного сертификата в тестовых целях. Главное, чтобы ваши хосты доверяли ему. Если сможете это проверить, напишите результат, я тогда исправлю ошибку в статье.
Спасибо большое за подробное описание, w2k19 настроил по Вашей статье, единственное что дополнительно пришлось выставить разрешения на шлюзе удаленных рабочих столов.
Здравствуйте. Получилось настроить RDWeb клиента на сервере 2019, захожу внутри локалки, отображаются стандартные ярлыки для запуска, калькулятор, ворд пад и пэйнт. нажимаю для запуска например калькулятора, начинается соединение и обрывается на отображении «Открывается удаленный порт» а дальше описание ошибки:
Не удалось подключиться к «Калькулятор»
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.
по протоколу с расширением Desktops.aspx все работает и открывается, по данному клиенту с расширением index.html открывается но не запускается, что то не так с портами и думаю сертификатом в целом и да, если ввести команду для проверки информации сертификата в шеле netsh http show sslcert первая строка отображает такую информацию IP:порт : 0.0.0.0:443, разве порт не 3392 должен быть? Тема актуальная причем на англоязычных ресурсах но решения данной проблемы нет. Помогите пожалуйста с чем связано?
Несколько дней мучений, в итоге оказалось все настолько банально…в адресной строке было прописано localhost за место полного доменного имени. Будьте внимательны
Можно поподробней , у меня точно такая же проблема, и не могу понять причину.
и сразу , у меня разнесены роли 1 севрер: Веб, Брокер. 2 Сервер: терминальный
Аналогично, есть варианты?
Коллеги, давайте подробнее проблему опишите. Често говоря я не понял, на что все жалуются.
Подтверждаю. есть проблема. после запуска приложения выводится сообщение о том что открывается порт и затем сразу
«Не удалось подключиться к «Paint»
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
из журнала
Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 24.03.2020 13:37:08
Event time (UTC): 24.03.2020 6:37:08
Event ID: f7673dc04ae2462eb867d48ac3db2993
Event sequence: 214
Event occurrence: 5
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-5-132295046833352349
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:\Windows\Web\RDWeb\Pages\
Machine name: SRV-TRM-03
Process information:
Process ID: 2456
Process name: w3wp.exe
Account name: IIS APPPOOL\RDWebAccess
Exception information:
Exception type: NullReferenceException
Exception message: Ссылка на объект не указывает на экземпляр объекта.
в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.d__554.MoveNext()
Request information:
Request URL: _https://srv-trm-03:443/RDWeb/Pages/ru-RU/Default.aspx
Request path: /RDWeb/Pages/ru-RU/Default.aspx
User host address: ::1
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOL\RDWebAccess
Thread information:
Thread ID: 9
Thread account name: IIS APPPOOL\RDWebAccess
Is impersonating: False
Stack trace: в Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormAuthTicketInfo..ctor(HttpContext objHttpContext)
в ASP.ru_ru_default_aspx.d__0.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.PageAsyncTaskManager.d__3.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение —
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Web.UI.Page.d__554.MoveNext()
Custom event details:
Вобщем такая ошибка возникает у тех кто пытается завести без Web шлюза.
Если ставить только через брокер, то надо ssl сертификат назначать на порт 3392. Но и то у меня не завелось. доставил Web шлюз просто
У меня точно такая же ошибка
после запуска приложения выводится сообщение о том что открывается порт и затем сразу
«Не удалось подключиться к «Paint»
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 24.03.2020 13:37:08
Event time (UTC): 24.03.2020 6:37:08
Event ID: f7673dc04ae2462eb867d48ac3db2993
Event sequence: 214
Event occurrence: 5
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-5-132295046833352349
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:\Windows\Web\RDWeb\Pages\
Machine name: SRV-TRM-03
Process information:
Process ID: 2456
Process name: w3wp.exe
Account name: IIS APPPOOL\RDWebAccess
Только конфигурация вместе со шлюзом Remote Desktop Gateway 2019. Роли RGW и Web Access совмещены на одной виртуалке, роли RDSH и RDCB совмещены на другой. Лицензирование вынесено на третью. Все это собрано в пул и развернута коллекция сеансов.
Кто-нибудь может подсказать, как победить эту болезнь?
У меня точно такая же ошибка
после запуска приложения выводится сообщение о том что открывается порт и затем сразу
«Не удалось подключиться к «Paint»
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
Event code: 3005
Event message: Возникло необработанное исключение.
Event time: 24.03.2020 13:37:08
Event time (UTC): 24.03.2020 6:37:08
Event ID: f7673dc04ae2462eb867d48ac3db2993
Event sequence: 214
Event occurrence: 5
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-5-132295046833352349
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:\Windows\Web\RDWeb\Pages\
Machine name: SRV-TRM-03
Process information:
Process ID: 2456
Process name: w3wp.exe
Account name: IIS APPPOOL\RDWebAccess
Только конфигурация вместе со шлюзом Remote Desktop Gateway 2019. Роли RGW и Web Access совмещены на одной виртуалке, роли RDSH и RDCB совмещены на другой. Лицензирование вынесено на третью. Все это собрано в пул и развернута коллекция сеансов.
Кто-нибудь может подсказать, как победить эту болезнь?
Давно хотел терминальную сессию в браузере.
Для посмотреть.
Поднял всё на Hyper-V.
Завелось всё с полтыка.
Стабильно работает.
…Радость. 🙂
Добрый день.
Проблема актуальная.
Работает все, но не открывает приложения через браузер.
Просто публикации через mstsc работают.
Сертификат стоит.
Проблему решили переподключем сертификата и обращением по полному имени сервера.
если веб интерфейс и и шлюз подключений на разных серверах
какие порты в интернет пробрасывать
В интернет обычно смотрит 443 порт со шлюза.
«Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
Все настроено верно, сертификаты, имена серверов, по обычному RDP и веб-доступу приложения из коллекции запускаются, по веб-клиенту указанная ошибка. Куда копать?
удалось ли вам решить проблему?
Забыл указать, что RDCB и RDSH на разных серверах
Я хз, помогло именно это или нет. Была точно такая же ошибка. В конфигурации фермы — Терминалка отдельно, брокерт отдельно, шлюз совмещен с ролью веб. В общем на сервере шлюза я поставил программу IIS Crypto и выставил все протоколы SSL/TLS . После ребута все заработало.
И так описываю по шагам кто столкнулся с фигней типа «Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
в англоязычной винде это звучит так
«your request cannot be processed. make sure you have provided all the required information accurately, and then resubmit your request. if the problem persists, try using a different connection method.»
вся эта бодяга из-за кривых сертификатов и неверного имени сервера, когда пытаетесь зайти по вебу!!!
скажем сервер называется APP и он в домене LAB.LAB, вы должны заходить именно _https://app.lab.lab и сертификаты должны быть сделаны на ПОЛНОЕ имя app.lab.lab
как я это победил
1. при установке RD Gateway
https://disk.yandex.ru/i/oSyLGFrhB1CxcQ
2. нужно задать ВЕРНОЕ имя
https://disk.yandex.ru/i/1BY-AeWf3FR1TA
3.правильно СОЗДАТЬ НОВЫЙ сертификат(укажите путь куда сохранять и задайте пароль
https://disk.yandex.ru/i/atKNPAALe6Gr1w
4.далее это созданный сертификат прикрепляем там же ко всем ролям!(не надо для каждой выпускать новый, прикрепляем выпущенный выше)
https://disk.yandex.ru/i/Mh2-aDk9LmmImw
5.идём в сертификаты и экспортируем в файл клиентский серт как на скрине
https://disk.yandex.ru/i/tcGQsX0j38eNxA
6. экспортируем в BASE64 в c:\своя папка\cert.cer
https://disk.yandex.ru/i/L2d1dQ7ViUoikQ
7. открываем powersell от админа(обязательно) и выполянем
Import-RDWebClientBrokerCert C:\своя папка\cert.cer
8. и заходим на свой webapp с опубликованными приложениями и они откроются в вебе!!!!!!!
ВСЁ!!!!!!! твари из майкрософта, я на это убил несколько дней чтобы понять в чём проблема!!!!
нафига выпилили мой манула?
Все ок, комменты со ссылками на ручной модерации. Спамеры не спят
За мануал спасибо, думаю пригодится другим страдальцам 🙂
Спасибо за статью, очень познавательно.
Подскажите, пожалуйста, работает ли здесь SSO, по аналогии с обычной страницей? Я находил информацию что работает только после первого входа, для запуска приложений авторизоваться не требуется.
Я настроил вход без ввода учетных данных для страницы RDWeb/Pages/ru-RU/default.aspx
но для страницы html5 RDWeb/webclient/index.html все равно требуется авторизация.
Андрей, присоединяюсь к Вашему вопросу. Судя по некоторым зарубежным ресурсам — SSO должно работать из коробки в последних версиях клиента HTML5, но у меня не работает, больше информации найти пока не получается.
В качестве RDP клиентов можно использовать только Windows 10 или Windows Server 2008 R2 (и выше); — а вот здесь точно КЛИЕНТОВ?
Имеено так написано у первоисточника
_https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin
Make sure that any computers your users will connect to are running one of the following OS versions:
Windows 10
Windows Server 2008R2 or later
Я сам не пробовал использовать RDWA HTML5 с других устройств, но подозреваю что на Win 7 и Win 8.1 с современными браузерами (не IE) , все также будет работать.
Стала появляться ошибка: «Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервера. Обратитесь за помощью к своему администратору или специалисту службы технической поддержки.»
сертификат Let’s Encrypt, действительный, через веб доступ все работает, через веб клиент нет.
Указанная выше ошибка возникает, если в вебклиенте включена настройка «открывать ресурсы в браузере», если загрузить RDPфайл и открыть ошибка сертификата не возникает. Не пойму как исправить…
Мы в свойства «удаленного доступа» включили «Разрешить подключение только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети» и бага больше не было
Попробовал перевыпустить и установить новый сертификат. Ошибка та же. Посоветуйте как исправить.
Если сертфикат руками добавить в доверенные, проблема остается?
Проблема остается
И что самое странное на некоторых компах такой ошибки нет и все работает как надо!!!!?????…..
Удалось у кого победить ??: Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки ?? Сертификаты не помогают . На некоторых компах все работает , а на некоторых нет .
Я победил, удалил и снова создал Политику авторизации ресурсов, указав в качестве ресурсов все сервера фермы и рабочие столы
Евгений , а можно поподробнее ?
Спасибо за наводку . Нужно было в диспетчере авторизации ресурсов добавить сертификат . Все работает . Еще раз Вам спасибо
День добрый!
Но у меня возник вопрос: со сайта не запускается приложение опубликованные
Пишет: Не удалось подключиться к «Remote Desktop Connection»
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.
Как устранить ? за ранее спасибо !
Добрый день, у вас включен RD-Gateway?
Проверьте в powershell:
Get-RDDeploymentGatewayConfiguration
Если стоит Do Not Use, необходимо в настройках развертывания указать FQDN сервера подключения.
У меня заработало только после этого.
У меня Windows server 2019.
P.S. Хотя говорят что Windows server 2019 можно подружить с HTML5 без использования Gateway.
Ошибка: «Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервера. Обратитесь за помощью к своему администратору или специалисту службы технической поддержки.» актуальна…. Помогите с вариантами…
Установите верный сертификат. Желательно доверенного центра сертификации.
Экспортируем с брокера сертификат, который используем для SSO. И подгружаем веб сервер его с помощью команды:
Import-RDWebClientBrokerCert C:\RDBroker.cer
в статье об этом сказано.Также данный сертификат необходимо установить на Gateway.
Проблема в вашем случае в несоответствии сертификатов Брокера и Веб.
Абсолютно ничего не изменял, но заработало извне, в локалке также пишет «непредвиденный сертификат». В свойствах развертывания галка «не использовать шлюз в локальной сети» не стоит…..
А если галку поставить, что происходит?
Если галку поставить, все равно пишет «непредвиденный сертификат». Перевыпустил сертификат, никаких изменений. Извне работает, из локалки нет.
Сертификат Let’s Encrypt, рабочий, исправный, доверенный….