0

Настройка RDP веб клиента HTML5 на RDS Windows Server 2016

05.05.2022

Несмотря на то, что 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

Install-Module -Name RDWebClientManagement

Чтобы принять лицензионное соглашение Microsoft, введите A.

Теперь нужно установить последнюю версию пакета Web Remote Desktop:

Install-RDWebClientPackage

После установки пакета, проверьте его свойства командой:

Get-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

Для тестового использования клиента RD Web можно использовать команду:

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 сервере под своей учетной записью.

веб клиент rdp

При входе у вас будет запрошено какие локальные ресурсы должны быть доступны в RD сессии. Пока доступно только перенаправление буфера обмена и принтеров (локальные диск и USB устройства через веб-клиент RDP не пробрасываются, нужно использовать тяжёлый клиент mstsc.exe)

Перед вами должен появится список опубликованных RemoteApps и RDP ярлыков. Вы можете переключаться между ними с помощью иконок в верхней части окна.

список RemoteApps в браузере html5

Печать из RD Web клиента осуществляется через виртуальный PDF принтер (Microsoft Print to PDF). Вы отправляете документ на печать в окне веб клиента и браузер предлагает скачать сформированный pdf файл, который можно открыть и распечатать на локальный принтер.

RD Web клиент печать через виртуальный PDF принтер

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

Что интересно, в RDP веб клиенте теперь видно количество памяти и CPU на RDS сервере, которое использует то или иное приложение. Просто щелкните по значку опубликованного приложения.

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:380 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 380