12 Replies
-
Open the rdweb page in Chrome or Firefox. Click on the remoteapp icon and it will download the RDP file.
1 found this helpful
thumb_up
thumb_down
-
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new window
Was this post helpful?
thumb_up
thumb_down
-
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Was this post helpful?
thumb_up
thumb_down
-
DragonsRule wrote:
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Stay tuned
I’ll update this thread when it happens. I think this is the push that I needed to finish it off
Was this post helpful?
thumb_up
thumb_down
-
Adam (AJ Tek) wrote:
DragonsRule wrote:
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Stay tuned
I’ll update this thread when it happens. I think this is the push that I needed to finish it off
That’s vague… When what happens?
Was this post helpful?
thumb_up
thumb_down
-
Thank you for the solution.
I have one more issue while accessing the Application from my computer using the RDWeb(URL) externally.
I am able to login to the URL page and when I click on the RDP icon, it gets downloaded and It prompts for the credential, However, I use the same user credential which I used to log in to the page. I am not able to log in instead it shows «log-on attempt failed» . I have tried all possible solutions. Any suggestions for this issue would be really helpful!
Thank you.
Was this post helpful?
thumb_up
thumb_down
-
Stabby
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.cayenne
Aishwarya Ravichandran(AR) wrote:
Thank you for the solution.
I have one more issue while accessing the Application from my computer using the RDWeb(URL) externally.
I am able to login to the URL page and when I click on the RDP icon, it gets downloaded and It prompts for the credential, However, I use the same user credential which I used to log in to the page. I am not able to log in instead it shows «log-on attempt failed» . I have tried all possible solutions. Any suggestions for this issue would be really helpful!
Thank you.
Are you logging in from a domain or workgroup PC? Are you using the full UPN for the username or remembering to include the NetBios part of the username? Entering just the username on a workgroup computer will act as if your using workgroup credentials, and the domain controller will reject it. (Username@domain.local or donain\username)
Was this post helpful?
thumb_up
thumb_down
-
No, I am logging in using the domain (domain\username). But still, it shows the log-on error. when I looked at the possible solution, I got to know it is because of HTTP redirection in IIS, though I didn’t understand the logic, I tried it, but it didn’t work for me!
Was this post helpful?
thumb_up
thumb_down
-
How are you connecting to your LAN, before you run the RemoteApp?
Was this post helpful?
thumb_up
thumb_down
-
https://www.ajtek.ca/guides/remoteapp-and-desktop-connections/ Opens a new window
PowerShell Cmdlets:
Add-RADCConnection
Remove-RADCConnectionFor deployment of RADC connections to mass-systems without the use of GPO.
Was this post helpful?
thumb_up
thumb_down
-
is it possible somehow similar way to add remote application from second RDS server (not in cluster).
so we have 2 different RDS servers but I can use Default connection only to one of them. but manually i can add second connection — how to add second connection via GPO
Was this post helpful?
thumb_up
thumb_down
Для установки и настройки роли RemoteApp, имеем подготовленный сервер с операционной системой Windows Server 2019, на котором будем производить нижеописанные действия.
Установка служб Удаленных рабочих столов
На первом этапе установим службы Удаленных рабочих столов, для этого в окне Диспетчер серверов выбираем Добавить роли и компоненты.
Обращаем внимание перед установкой роли на предупреждение → далее.
Устанавливаем чекбокс Установка служб удаленных рабочих столов → далее.
Устанавливаем чекбокс Cтандартное развертывание → далее.
Устанавливаем чекбокс Развертывание рабочих столов на основе сеансов → далее.
Выбираем сервер, на который будут установлены службы роли посредника → далее.
Устанавливаем чекбокс Установить службы роли веб-доступа к удаленным рабочим столам на сервере посредника подключений к удаленному рабочему столу → далее.
Выбираем сервер, на который будут установлены службы роли узлов сеансов удаленных рабочих столов → далее.
Устанавливаем чекбокс Автоматически перезапускать конечный сервер, если это потребуется → развернуть.
Закрываем установку после завершения и перезагружаем сервер.
Рисунок 1 — Завершение установки
Бесплатный сервер 1С для подписчиков нашего telegram-канала !
Создание коллекции сеансов
Заходим в диспетчер серверов → Службы удаленных рабочих столов → Создание коллекции сеансов.
Нажимаем далее → Указываем имя коллекции → Выбираем наш сервер → Выбираем группу пользователей для доступа к коллекции → Снимаем чекбокс с включить диски профилей пользователей → Нажимаем создать → закрыть.
Выбираем нашу коллекцию и нажимаем публикация удаленных приложений RemoteApp.
Выбираем из списка приложения, которые необходимо опубликовать, нажимаем далее → опубликовать → закрыть.
Проверка публикации RemoteApp
Переходим в браузере по адресу https://localhost/rdweb и выбираем приложение.
После сохранения файла RDP, можем заходить в него под пользователем.
Рисунок 2 — Выбор опубликованного приложения
Рисунок 3 — Проверка работоспособности RemoteApp
Нужна помощь? Наша компания может оказать помощь в реализации ИТ-задач, для этого напишите в чат. Также мы предоставляем готовый сервер с RemoteApp-приложениями, например, с различными конфигурациями 1С.
Настройка RemoteApp на Windows Server 2019
Для установки и настройки роли RemoteApp, имеем подготовленный сервер с операционной системой Windows Server 2019, на котором будем производить ниже описанные действия.
УСТАНОВКА СЛУЖБ УДАЛЕННЫХ РАБОЧИХ СТОЛОВ
На первом этапе установим службы Удаленных рабочих столов, для этого в окне Диспетчер серверов выбираем Добавить роли и компоненты.
Обращаем внимание перед установкой роли на предупреждение → далее.
Устанавливаем чекбокс Установка служб удаленных рабочих столов → далее.
Устанавливаем чекбокс Cтандартное развертывание → далее.
Устанавливаем чекбокс Развертывание рабочих столов на основе сеансов → далее.
Выбираем сервер, на который будут установлены службы роли посредника → далее.
Устанавливаем чекбокс Установить службы роли веб-доступа к удаленным рабочим столам на сервере посредника подключений к удаленному рабочему столу → далее.
Выбираем сервер, на который будут установлены службы роли узлов сеансов удаленных рабочих столов → далее.
Устанавливаем чекбокс Автоматически перезапускать конечный сервер, если это потребуется → развернуть.
Закрываем установку после завершения и перезагружаем сервер.
Рисунок 1 — Завершение установки
СОЗДАНИЕ КОЛЛЕКЦИИ СЕАНСОВ
Заходим в диспетчер серверов → Службы удаленных рабочих столов → Создание коллекции сеансов.
Нажимаем далее → Указываем имя коллекции → Выбираем наш сервер → Выбираем группу пользователей для доступа к коллекции → Снимаем чекбокс с включить диски профилей пользователей → Нажимаем создать → закрыть.
Выбираем нашу коллекцию и нажимаем публикация удаленных приложений RemoteApp.
Выбираем из списка приложения, которые необходимо опубликовать, нажимаем далее → опубликовать → закрыть.
ПРОВЕРКА ПУБЛИКАЦИИ REMOTEAPP
Переходим в браузере по адресу https://localhost/rdweb и выбираем приложение.
После сохранения файла RDP, можем заходить в него под пользователем.
Рисунок 2 — Выбор опубликованного приложения
Рисунок 3 — Проверка работоспособности RemoteApp
RemoteApp — это технология, которая позволяет пользователям запускать отдельные приложения на удаленном сервере, в то время как они работают на своем компьютере или устройстве. Она предоставляет гибкость и удобство, позволяя использовать приложения, требующие большого объема ресурсов или развернутые на удаленном сервере, на своем локальном компьютере.
RemoteApp в Windows Server 2019 предлагает больше функций и возможностей по сравнению с предыдущими версиями операционной системы. Это позволяет легко создавать, настраивать и управлять отдельными приложениями для использования на удаленном сервере. Благодаря RemoteApp пользователи могут получить доступ к этим приложениям через интернет или локальную сеть, не загружая их на свое устройство.
В этом подробном руководстве мы расскажем вам, как правильно настроить RemoteApp на Windows Server 2019. Мы покажем вам шаги, которые необходимо выполнить, чтобы создать и настроить приложения RemoteApp на сервере, а также как предоставить доступ пользователям к этим приложениям.
Содержание
- Установка Windows Server 2019
- Установка и настройка службы Remote Desktop Services
- Шаг 1: Установка службы
- Шаг 2: Настройка службы
- Шаг 3: Проверка настройки
- Создание и настройка RemoteApp
- Подключение клиентов к RemoteApp
Установка Windows Server 2019
- Скачайте образ Windows Server 2019 с официального сайта Microsoft.
- Запишите образ на DVD или создайте загрузочный USB-накопитель с помощью специальных программ, таких как Rufus.
- Вставьте загрузочное устройство с установочным образом в сервер.
- Перезагрузите сервер и выберите нужное устройство для загрузки (DVD или USB-накопитель) в меню загрузки.
- Дождитесь загрузки файлов Windows Server 2019.
- Выберите язык установки и раскладку клавиатуры.
- Нажмите кнопку «Установить» и примите лицензионное соглашение.
- Выберите тип установки: «Сервер с рабочим столом» или «Сервер без графического интерфейса» (Core).
- Выберите диск для установки Windows Server 2019.
- Дождитесь завершения установки и перезагрузите сервер.
После завершения установки Windows Server 2019 вы будете готовы приступить к настройке RemoteApp. В следующем разделе руководства мы рассмотрим подробные действия для настройки данной функции.
Установка и настройка службы Remote Desktop Services
Для настройки RemoteApp на Windows Server 2019 вам необходимо установить и настроить службу Remote Desktop Services (RDS). В этом разделе мы расскажем, как выполнить эту процедуру.
Шаг 1: Установка службы
1. Откройте меню «Пуск» и выберите «Серверный менеджер».
2. В окне «Серверный менеджер» нажмите «Добавить роли и компоненты».
3. В мастере установки выберите «Установка базовой службы удаленных рабочих столов» и нажмите «Далее».
4. Пройдите по инструкциям мастера, выбирая настройки по умолчанию или указывая необходимые вам параметры.
5. После завершения установки перезагрузите сервер.
Шаг 2: Настройка службы
1. После перезагрузки сервера откройте меню «Пуск» и выберите «Серверный менеджер».
2. В окне «Серверный менеджер» выберите «Удаленные рабочие столы» в левой панели навигации.
3. Нажмите правой кнопкой мыши на «Серверы удаленных рабочих столов» в правой панели и выберите «Добавить сервер C ertificate».
4. Укажите путь к файлу сертификата и следуйте инструкциям мастера.
5. Вернитесь в меню «Удаленные рабочие столы» и выберите «Настроить удаленные рабочие столы».
6. В мастере настройки укажите требуемые параметры, такие как количество пользователей, разрешенные типы подключения и прочее.
7. Завершите настройку мастера и перезагрузите сервер.
Шаг 3: Проверка настройки
1. После перезагрузки сервера откройте меню «Пуск» и выберите «Серверный менеджер».
2. В окне «Серверный менеджер» выберите «Удаленные рабочие столы» в левой панели навигации.
3. Наведите указатель мыши на название сервера в правой панели, чтобы увидеть доступные функции.
4. Убедитесь, что функция RemoteApp подключена и работает корректно.
Поздравляем! Вы успешно установили и настроили службу Remote Desktop Services на Windows Server 2019.
Создание и настройка RemoteApp
В данной статье мы рассмотрим процесс создания и настройки RemoteApp на Windows Server 2019. RemoteApp позволяет пользователям запускать отдельные приложения на удаленном сервере, не запуская на нем полное рабочее окружение.
Чтобы создать RemoteApp, следуйте этим шагам:
- Откройте Windows Server 2019 и запустите Remote Desktop Services.
- Перейдите в раздел «Collections» и создайте новую коллекцию. Укажите имя коллекции и выберите тип «RemoteApp programs».
- Выберите приложения, которые хотите добавить в коллекцию RemoteApp. У вас есть возможность добавить приложения как с локального сервера, так и с удаленных серверов.
- Настройте параметры соединения, такие как доступ пользователей и тип подключения.
- Пройдите процесс настройки RemoteApp, указывая необходимую информацию, такую как путь к программе, команду запуска и аргументы командной строки.
- После завершения настройки, сохраните коллекцию RemoteApp.
Теперь, когда коллекция RemoteApp создана и настроена, пользователи смогут запускать указанные приложения на удаленном сервере через клиентский компьютер.
Настройка RemoteApp на Windows Server 2019 позволяет упростить использование приложений для пользователей и предоставить им доступ к необходимым программам, не требуя установки и настройки на каждом клиентском компьютере. Это удобное и эффективное решение для организаций, использующих удаленные рабочие среды.
Подключение клиентов к RemoteApp
После настройки RemoteApp на Windows Server 2019 вы готовы подключать клиентов к виртуальным приложениям со своего сервера. В этом разделе мы рассмотрим несколько способов для подключения клиентов.
1. С помощью клиента RemoteApp:
— Скачайте и установите клиент RemoteApp на устройство клиента. Этот клиент доступен для различных операционных систем, включая Windows, macOS, iOS и Android.
— Откройте клиент RemoteApp и нажмите на кнопку «Добавить» или «Create a new connection» (в зависимости от операционной системы).
— Введите адрес сервера RemoteApp (то есть IP-адрес или DNS-имя сервера).
— Нажмите на кнопку «Connect» или «Подключиться».
— Войдите в систему с помощью учетных данных пользователя.
— Теперь вы можете использовать виртуальные приложения, доступные на сервере, прямо на устройстве клиента.
2. Через веб-браузер:
— Откройте веб-браузер на устройстве клиента.
— Введите адрес сервера RemoteApp в адресной строке браузера.
— Войдите в систему с помощью учетных данных пользователя.
— Вы увидите список доступных виртуальных приложений на сервере.
— Нажмите на нужное приложение для запуска веб-версии.
— Приложение запустится в окне браузера и вы сможете его использовать.
3. Через файл RDP:
— Создайте файл RDP для нужного виртуального приложения на сервере RemoteApp.
— Передайте файл RDP клиенту (например, по электронной почте).
— Клиент открывает файл RDP на своем устройстве.
— Вход в систему осуществляется с помощью учетных данных пользователя.
— Приложение запустится и клиент сможет его использовать.
Следуя этим инструкциям, вы сможете успешно подключить клиентов к RemoteApp на Windows Server 2019 и предоставить им доступ к виртуальным приложениям.
Для установки и настройки роли RemoteApp, имеем подготовленный сервер с операционной системой Windows Server 2019, на котором будем производить нижеописанные действия.
Установка служб Удаленных рабочих столов
На первом этапе установим службы Удаленных рабочих столов, для этого в окне Диспетчер серверов выбираем Добавить роли и компоненты.
Обращаем внимание перед установкой роли на предупреждение → далее.
Устанавливаем чекбокс Установка служб удаленных рабочих столов → далее.
Устанавливаем чекбокс Cтандартное развертывание → далее.
Устанавливаем чекбокс Развертывание рабочих столов на основе сеансов → далее.
Выбираем сервер, на который будут установлены службы роли посредника → далее.
Устанавливаем чекбокс Установить службы роли веб-доступа к удаленным рабочим столам на сервере посредника подключений к удаленному рабочему столу → далее.
Выбираем сервер, на который будут установлены службы роли узлов сеансов удаленных рабочих столов → далее.
Устанавливаем чекбокс Автоматически перезапускать конечный сервер, если это потребуется → развернуть.
Закрываем установку после завершения и перезагружаем сервер.
Рисунок 1 — Завершение установки
Создание коллекции сеансов
Заходим в диспетчер серверов → Службы удаленных рабочих столов → Создание коллекции сеансов.
Нажимаем далее → Указываем имя коллекции → Выбираем наш сервер → Выбираем группу пользователей для доступа к коллекции → Снимаем чекбокс с включить диски профилей пользователей → Нажимаем создать → закрыть.
Выбираем нашу коллекцию и нажимаем публикация удаленных приложений RemoteApp.
Выбираем из списка приложения, которые необходимо опубликовать, нажимаем далее → опубликовать → закрыть.
Переходим в браузере по адресу https://localhost/rdweb и выбираем приложение.
После сохранения файла RDP, можем заходить в него под пользователем.
Рисунок 2 — Выбор опубликованного приложения
Рисунок 3 — Проверка работоспособности RemoteApp
Нужна помощь? Наша компания может оказать помощь в реализации ИТ-задач, для этого напишите в чат. Также мы предоставляем готовый сервер с RemoteApp-приложениями, например, с различными конфигурациями 1С.
12 Replies
-
DragonsRule
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.pure capsaicin
Microsoft Remote Desktop Services Expert
-
check
110
Best Answers -
thumb_up
362
Helpful Votes
Open the rdweb page in Chrome or Firefox. Click on the remoteapp icon and it will download the RDP file.
1 found this helpful
thumb_up
thumb_down
-
check
-
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new window
Was this post helpful?
thumb_up
thumb_down
-
DragonsRule
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.pure capsaicin
Microsoft Remote Desktop Services Expert
-
check
110
Best Answers -
thumb_up
362
Helpful Votes
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Was this post helpful?
thumb_up
thumb_down
-
check
-
DragonsRule wrote:
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Stay tuned
I’ll update this thread when it happens. I think this is the push that I needed to finish it off
Was this post helpful?
thumb_up
thumb_down
-
DragonsRule
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.pure capsaicin
Microsoft Remote Desktop Services Expert
-
check
110
Best Answers -
thumb_up
362
Helpful Votes
Adam (AJ Tek) wrote:
DragonsRule wrote:
Adam (AJ Tek) wrote:
Alternatively, publish the Feed URL using GPO, and the published apps will appear in the user’s start menu as «locally» installed applications.
User Configuration > Administrative Templates > Windows Components > Remote Desktop Services > RemoteApp and Desktop Connections
Specify default connection URL: Enabled
Default connection URL: https://server.domain.local/RDWeb/Feed/webfeed.aspx Opens a new windowWhile true, that’s only useful if the machines in question are on your domain and can have GPOs applied. Personally, I have several non domain machines that use a RemoteApp, so I need the RDP file itself.
Stay tuned
I’ll update this thread when it happens. I think this is the push that I needed to finish it off
That’s vague… When what happens?
Was this post helpful?
thumb_up
thumb_down
-
check
-
Thank you for the solution.
I have one more issue while accessing the Application from my computer using the RDWeb(URL) externally.
I am able to login to the URL page and when I click on the RDP icon, it gets downloaded and It prompts for the credential, However, I use the same user credential which I used to log in to the page. I am not able to log in instead it shows «log-on attempt failed» . I have tried all possible solutions. Any suggestions for this issue would be really helpful!
Thank you.
Was this post helpful?
thumb_up
thumb_down
-
Stabby
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.cayenne
Aishwarya Ravichandran(AR) wrote:
Thank you for the solution.
I have one more issue while accessing the Application from my computer using the RDWeb(URL) externally.
I am able to login to the URL page and when I click on the RDP icon, it gets downloaded and It prompts for the credential, However, I use the same user credential which I used to log in to the page. I am not able to log in instead it shows «log-on attempt failed» . I have tried all possible solutions. Any suggestions for this issue would be really helpful!
Thank you.
Are you logging in from a domain or workgroup PC? Are you using the full UPN for the username or remembering to include the NetBios part of the username? Entering just the username on a workgroup computer will act as if your using workgroup credentials, and the domain controller will reject it. (Username@domain.local or donainusername)
Was this post helpful?
thumb_up
thumb_down
-
No, I am logging in using the domain (domainusername). But still, it shows the log-on error. when I looked at the possible solution, I got to know it is because of HTTP redirection in IIS, though I didn’t understand the logic, I tried it, but it didn’t work for me!
Was this post helpful?
thumb_up
thumb_down
-
DragonsRule
This person is a verified professional.
Verify your account
to enable IT peers to see that you are a professional.pure capsaicin
Microsoft Remote Desktop Services Expert
-
check
110
Best Answers -
thumb_up
362
Helpful Votes
How are you connecting to your LAN, before you run the RemoteApp?
Was this post helpful?
thumb_up
thumb_down
-
check
-
https://www.ajtek.ca/guides/remoteapp-and-desktop-connections/ Opens a new window
PowerShell Cmdlets:
Add-RADCConnection
Remove-RADCConnectionFor deployment of RADC connections to mass-systems without the use of GPO.
Was this post helpful?
thumb_up
thumb_down
-
is it possible somehow similar way to add remote application from second RDS server (not in cluster).
so we have 2 different RDS servers but I can use Default connection only to one of them. but manually i can add second connection — how to add second connection via GPO
Was this post helpful?
thumb_up
thumb_down
Эта большая инструкция посвящена особенностям установки, настройки и эксплуатации фермы терминальных серверов на базе роли Remote Desktop Services (RDS) в Windows Server. Статья поможет вам развернуть службы удаленных столов на Windows Server 2022, 2019 и 2016 в домене Active Directory.
Содержание:
- Компоненты Remote Desktop Services в Windows Server 2022/2016/2016/2012R2
- Создаем новую конфигурацию Remote Desktop Services в Windows Server
- Создаем коллекции Remote Desktop Services в Windows Server
- Публикация RemoteApp в Remote Desktop Services
- Настройка фермы Remote Desktop services с помощью PowerShell
Компоненты Remote Desktop Services в Windows Server 2022/2016/2016/2012R2
В состав роли RDS в Windows Server входя следующие компоненты:
- Remote Desktop Session Host (RDSH) – узлы сеансов RDS. Основные рабочие лошадки фермы RDS, на которых работают приложения пользователей;
- Remote Desktop Connection Broker (RDCB) – посредник RDS подключений. Используется для управления фермой RDS, распределения нагрузки, обеспечивает переподключение пользователей к своим сеансам, хранит коллекции RDS и опубликованные приложения RemoteApps;
- Remote Desktop Gateway (RDGW) – обеспечивает безопасный доступ к сервисам RDS из Интернета;
- RD Web Access (RDWA) – веб интерфейс для доступа к рабочим столам, программам RemoteApp;
- Remote Desktop Licensing (RD Licensing) — служба лицензирования, управляет RDS лицензиями (CAL) пользователей.
В нашем небольшом стенде будут всего три сервера со следующим распределением ролей
-
msk-rds1.winitpro.ru
— RDSH -
msk-rds2.winitpro.ru
– RDSH -
msk-rdsman.winitpro.ru
– RDSH, RDWA, RDCB, RD License
Предварительные требования, которые нужно выполнить перед созданием RDS фермы:
- Установите одинаковую версию Windows Server на все сервера, настроить их, и добавить в один домен AD;
- Откройте консоль ADUC (
dsa.msc
) и переместите все хосты с ролью RDSH в одну OU в AD. Так будет удобнее применять единые настройки через GPO; - Создайте в домене группу для RDSH серверов (например,
msk-rdsh
) и добавьте в нее все хосты; - Если вы хотите использовать диски User Profile Disk (UPD) для хранения профилей пользователей RDS (или перемещаемые профили), нужно создать на файловом сервере сетевой каталог, в котором они будут хранится (желательно расположить этот каталог на отказоустойчивом файловом кластере Windows Server). Предоставьте права Full Control на этот сетевой каталог для группы
msk-rdsh
.
Создаем новую конфигурацию Remote Desktop Services в Windows Server
Рассмотрим, как создать и настроить RDS конфигурацию с помощью графического интерфейса Server Manager.
Откройте Server Manager и добавьте все планируемые RDS сервера в консоль. Щелкните All Server -> Add servers.
Теперь в меню Server Manager выберите Add Roles and Features -> Remote Desktop Services installation -> Standard deployment –> Session-based deployment.
Режим Quick Start используется для развертывания всех компонентов RDS на одном сервере. В RDS ферме минимум может быть один сервер, который совмещает все роли RDS (RD Session Host, RD Web Access и RD Connection broker). Но такая конфигурация не обеспечивает отказоустойчивость и балансировку нагрузки в службах удаленных рабочей столов Windows Server.
Далее нужно указать, как вы хотите распределить роли RDS по вашим серверам. В мастере построения фермы RDS нужно выбрать сервера для соответствующих ролей. В моем случае я хочу построить такую конфигурацию:
- RD Connection Broker –
msk-rdsman
- RD Web Access —
msk-rdsman
- RD Session hosts —
msk-rdsman, msk-rds1, msk-rds2
Вы можете распределить RDS роли по серверам в любой другой конфигурации.
Поставьте галку Restart destination server automatically if required и нажмите кнопку Deploy. Дождитесь установки ролей RDS на всех серверах.
Итак, ваша ферма RDS создана.
Следующий этап установка и настройка сервера лицензирования RDS. Вы можете установить роль RD Licensing на один из серверов в вашей ферме или использовать существующий в домене сервер лицензирования RDS. Подробная инструкция по установке, настройке и активации роли RD Licensing доступа по ссылке.
Для управления вашим развертыванием RDS нужно перейти в раздел Server Manager -> Remote Desktop Services. На вкладке Overview показана текущая конфигурация RDS фермы.
Чтобы изменить настройки RDS фермы выберите Tasks -> Edit Deployment Properties в разделе Deployment Overview.
Здесь можно изменить:
- Параметры RD Gateway;
- Адрес сервер сервера лицензирования и тип пользовательских лицензий RDS CAL (per user/per device);
- Посмотреть URL адреса RD Web Access;
- Добавить SSL сертификаты для служб RDS (в инструкции мы пропустим этот пункт).
Для построения отказоустойчивой фермы Remote Desktop Services нужно обеспечить высокую доступность роли RD Connection Broker. Это достигается за счет запуска нескольких экземпляров RDCB (Active/Active) на разных серверах с общей базой данных SQL, в которой хранится конфигурация брокера подключений. Для обеспечения высокой доступности SQL базы RDCB ее можно размесить в группе высокой доступности SQL Server Always On. Ранее мы публиковали подробный гайд по настройке RDS Connection Broker с высокой доступностью.
Создаем коллекции Remote Desktop Services в Windows Server
Следующий этап настройки – создание коллекций сеансов RDS. Коллекции Remote Desktop позволяют разделить хосты в ферме RDSH на отдельные группы или создать разный набор настроек и доступных приложений Remote App для разных групп пользователей.
Перейдите в раздел Collections, выберите Edit -> Create Session Collection.
Здесь нужно задать:
- Имя коллекции RDS:
rds-Msk-Managers
- Выберите какие хосты RDSH будут обслуживать пользователей коллекции (один RDSH хост может находиться в одной коллекций; не рекомендуется объединять в одну коллекцию сервера с разными версиями Windows Server);
- На вкладке User Groups указываются группы пользователей, которым разрешено подключаться к коллекции. Уберите из групп Domain users и добавьте вашу группу (msk-Managers);
- На вкладке User Profile Disk нужно указать, хотите ли вы использовать формат UPD для хранения профилей пользователей (Enable user profile disks). В поле Location of user profile disks укажите UNC путь к сетевому каталогу(например,
\msk-fs01mskrds_upd
), в котором будут хранится профили пользователей в форматер UPD виртуальных дисков (в этом случае при входе на любой сервер коллекции RDS, пользователь будет всегда загружать свой профиль) и максимальный размер диска (20 Гб по умолчанию); - Нажмите Create чтобы создать новую RDS коллекцию;
- Убедитесь, что в указанном каталоге создался UPD файл с шаблоном профиля пользователя UVHD-template.vhdx.
Чтобы задать параметры коллекции RDS, выберите ее и нажмите Tasks -> Edit Properties.
Здесь можно изменить базовые параметры коллекции (имя, описание, группы доступа) и ряд других важных настроек.
В разделе Session можно задать параметры переподключения/ автоматического отключения простаивающих RDP сессий (подробнее рассматривалось в статье Настройка таймаутов для RDP сессий).
На вкладке Security можно выбрать настройки безопасности (Negotiate, RDP Security level или SSL/TLS) и шифрования (Low, High, Client compatible или FIPS compliant) для сессий RDP. Здесь также можно включить/отключить Network Level Authentication для RDP.
В секции Load Balancing можно изменить веса (
Relative Weight
) RDSH хостов в вашей ферме. Если характеристики серверов (RAM, CPU) в коллекции сильно отличаются, нужно задать меньший вес для менее производительных серверов. В этом случае RDCB будет распределять сессии пользователей по серверам в зависимости от их веса.
На вкладке Client Settings можно указать, какие устройства пользователям разрешено пробрасывать в RDP сессию. Например, вы можете разрешить/запретить пробрасывать с локального компьютера пользователя в RDS сеанс принтера, сетевые диски, аудио устройства, буфер обмена.
В разделе User Profile Disks можно более тонко настроить параметры UPD профилей пользователей. Можно исключить из синхронизации определенные папки или файлы. Это позволит уменьшить размер профиля UPD в сетевом каталоге и увеличить скорость загрузки профиля (не забывайте, что он загружается по сети из сетевой папки при входе пользователя).
Настройка и эксплуатация UPD обычно гораздо проще, чем использование перемещаемых профилей или folder redirection. Один UPD профиль не может использоваться в разных коллекциях RDS.
Для уменьшения размера UPD диска пользователя можно использовать стандартный PowerShell командлет
Resize-VHD
, используемый для изменения размеров виртуальных VHDX дисков Hyper-V.
В секции HOST SERVERS коллекции RDS можно перевести любой сервер фермы в режим обслуживания RDSH (Drain Mode). Для этого щелкните по нему и выберите Do not allow new connection. В результате Connection Broker не будет отправлять новые подключения пользователей на этот сервер. В таком режиме вы можете спокойно установить обновления Windows или обновлять на сервере приложения, не затрагивая пользователей.
Здесь же можно добавить/удалить RDS Host из коллекции.
Если RDSH хост вышел из строя и не доступен, его можно корректно удалить из фермы Remote Desktop Services по этой инструкции.
Публикация RemoteApp в Remote Desktop Services
RemoteApps – это опубликованные для пользователей приложения на RDS серверах. Благодаря RemoteApp можно использовать приложения, установленные на терминальном RDSH сервере так, как будто оно запущено непосредственно на компьютере пользователя. Пользователь не видит всего рабочего стола Windows Server RDS и работает только с теми программами, которые опубликовал для него администратор. На компьютере пользователя будет отображаться только окно запущенной на RDS программы.
Если вы не создаете RemoteApp, пользователи будут работать непосредственно на собственных рабочих столах на Windows Server. Поэтому не забудьте скопировать все необходимые пользователю ярлыки приложений в папку C:UsersPublicDesktop. Файлы из этой папки будут отображаться на рабочем столе всех пользователей. Если вы устанавливаете на RDSH пакет MS Office 365, обратите внимание что Office нужно разворачивать в режиме SharedComputerLicensing.
RemoteApp приложения создаются в настройках коллекций RDS. Выберите пункт Tasks -> Publish RemoteApp Programs в секции REMOTEAPP PROGRAMS.
Windows отобразит все приложения, установленные на текущем сервере. Можете выбрать одно из них. Если вашего приложения нет в списке, но оно установлено на других хостах RDS, нажмите кнопку Add и укажите полный путь к исполняемому файлу приложения (exe, bat, cmd и т.д.).
Опубликуйте приложение RemoteApp.
Затем в настройках RemoteApp можно указать дополнительные параметры приложения.
- Нужно ли показывать опубликованное RemoteApp приложение в веб интерфейсе RD Web Access;
- Задать параметры запуска (аргументы) приложения (Command-line Parameters -> Always use the following command-line parameters);
- На вкладке User Assignment можно дополнительно ограничить каким группам пользователей разрешено запускать приложение.
Если вы хотите изменить иконку опубликованного RemoteApp, нужно открыть следующую папку на сервере с ролью RDS Connection Broker:
C:WindowsRemotePackagesCPubFarmsrds-Msk-ManagersCPubRemoteApps
Замените иконку приложения другим ico файлом.
Теперь пользователь может запустить RemoteApp приложение из RD Web Access (
https://msk-rdsman.wintpro.ru/RDWeb
) или с помощью специального RDP файла.
Для запуска опубликованного приложения RemoteApp, нужно добавить в RDP файл такие строки:
remoteapplicationmode:i:1 remoteapplicationname:s:putty remoteapplicationprogram:s:"C:Toolsputty.exe" disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe
Несколько полезных мелочей для удобной эксплуатации фермы RDS:
- Для роли RDWeb можно настроить поддержку HTML5, это позволит пользователям подключаться к RDS серверам из любого браузера и ОС даже без клиента RDP;
- На веб сервере RD Web Access можно опубликовать ссылку на смену истекшего пароля пользователя (по умолчанию при включенном NLA вы не сможете аутентифицироваться на RDSH с истекшим паролем пользователя Active Directory);
- Инструкция для пользователей по смене пароля в RDP сессии;
- Администратор может использовать теневые подключения RD Session Shadow для подключения/просмотра рабочего стола сеанса пользователя на сервере RDS;
- Чтобы быстро найти, на каких RDS серверах есть сессии определенного пользователя, можно использовать PowerShell:
Import-Module RemoteDesktop
Get-RDUserSession -ConnectionBroker msk-rdsman.winitpro.ru | where {$_.UserName -eq "a.ivanov"} | Select HostServer - Вы можете использовать PowerShell скрипты для просмотра и анализа логов RDP подключений пользователей к серверам RDS;
- Для дополнительной защиты можно настроить двухфакторную аутентификацию (2FA) пользователей на RDS серверах Windows с помощью сторонних средств.
Настройка фермы Remote Desktop services с помощью PowerShell
Если вы четко представляете себе концепцию RDS фермы, вы можете быстро разворачивать RDS конфигурацию с помощью PowerShell.
Следующие PowerShell команды для создания RDS фермы лучше запускать с другого на другом сервера, т.к. управляемые RDS хосты придется перезагружать.
Задайте имена серверов в вашей ферме RDS. В этом примере я установлю роли RDCB и RDS Licensing на отдельный сервер (в дальнейшем рекомендуется настроить отказоустойчивую конфигурацию RDCB).
$RDSH1 = "msk-rds1.winitpro.ru"
$RDSH2 = "msk-rds2.winitpro.ru"
$RDSCB = "msk-rdcb.winitpro.ru"
$RDSGW = "msk-rdsgw.winitpro.ru"
Import-Module RemoteDesktop
Установите RDS роли на сервера:
Add-WindowsFeature –ComputerName $RDSH1, $RDSH2 -Name RDS-RD-Server –IncludeManagementTools
Add-WindowsFeature –ComputerName $RDSCB -Name RDS-Connection-Broker -IncludeManagementTools
Add-WindowsFeature –ComputerName $RDSGW -Name RDS-Web-Access, RDS-Gateway –IncludeManagementTools
Перезагрузите все хосты:
Restart-Computer -ComputerName $RDSH1,$RDSH2,$RDSCB,$RDSGW
Создайте новый инстанс RDSessionDeployment:
New-RDSessionDeployment -ConnectionBroker $RDSCB -SessionHost $RDSH1,$RDSH2 –Verbose
Добавить в ферму сервера RDWA и RDGW:
Add-RDServer -Server $RDSGW -Role RDS-WEB-ACCESS -ConnectionBroker $RDSCB
Add-RDServer -Server $RDSGW -Role RDS-GATEWAY -ConnectionBroker $RDSCB -GatewayExternalFqdn "rds.winitpro.ru"
Текущее распределение RDS ролей по серверам фермы можно вывести так:
Get-RDServer -ConnectionBroker $RDSGW
Установка роли лицензирования RDS:
Add-WindowsFeature –ComputerName $RDSCB -Name RDS-Licensing, RDS-Licensing-UI
Задайте режим лицензирования PerUser:
Invoke-Command -ComputerName $RDSCB -ScriptBlock {Set-RDLicenseConfiguration -Mode PerUser -LicenseServer $RDSCB -ConnectionBroker $RDSCB}
Add-RDServer -Server $RDSCB -Role RDS-LICENSING -ConnectionBroker $RDSCB
Добавить сервер лицензирования в доменную группу с помощью Add-ADGroupMember:
Add-ADGroupMember "Terminal Server License Servers" -Members "msk-rdcb$"
Если у вас есть сертификат для RDS можно его добавить в конфигурацию фермы (можно использовать бесплатный SSL сертификат Let’s Encrypt для вашего RDS хоста):
Path = "C:psRDSCert.pfx"
$Password = ConvertTo-SecureString -String "CertPAssddr0w11-" -AsPlainText -Force
Set-RDCertificate -Role RDGateway -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDWebAccess -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDPublishing -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDRedirector -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Информацию об установленных SSL сертификатах можно получить так:
Get-RDCertificate
Теперь можно создать коллекции RDS:
$CollectionName = "DEVdept"
New-RDSessionCollection –CollectionName $CollectionName –SessionHost $RDSH1,$RDSH2 –ConnectionBroker $RDSCB –CollectionDescription “Develovers”
Разрешить доступ к RDS серверам для групп:
$UserGroup [email protected]("WINITPROmsk-developers","WINITPROmsk_devops")
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup $UserGroup
Опубликовать приложение RemoteAPP:
New-RDRemoteapp -Alias GoogleChrome -DisplayName GoogleChrome -FilePath "C:Program Files (x86)GoogleChromeApplicationchrome.exe" -ShowInWebAccess 1 -CollectionName $CollectionName -ConnectionBroker $RDSCB
В статье мы рассмотрели, как установить и настроить ферму Remote Desktop Services на базе Windows Server 2019/2022 с помощью графического интерфейса Server Manager и с помощью PowerShell. За рамками статьи осталось более подробное описание ролей RD Web Access и RD Gateway. Мы рассмотрим настройку этих ролей отдельно в следующих статьях.
В последнее время очень много клиентов хотят использовать DIRECTUM через терминальные сервера. В этом блоге я расскажу про новую технологию Microsoft, которая называется RemoteApp.
RemoteApp — это технология, которая позволяет представлять приложения, доступ к которым может быть получен удаленно через Службы удаленных рабочих столов, как если бы они были запущены на локальном компьютере пользователя. Другими словами,
пользователь просто запускает ярлык на рабочем столе, а приложение запускается на терминальном сервере.
Этапы установки и настройки удаленных приложений
- настройка хост-сервера сеансов удаленных рабочих столов для размещения удаленных приложений RemoteApp;
- добавление программ в список удаленных приложений RemoteApp;
- создание RDP-файла и Создание пакета установщика Windows.
Настройка хост-сервера сеансов удаленных рабочих столов для размещения удаленных приложений RemoteApp
Существуют предварительные требования к установке, которые необходимо выполнить перед настройкой Удаленные приложения RemoteApp для использования. В следующих разделах рассматривается настройка сервера для работы с Удаленные приложения RemoteApp.
- установка службы роли хост-сервера сеансов удаленных рабочих столов;
- установка программ;
- проверка параметров удаленного подключения.
Установка службы роли хост-сервера сеансов удаленных рабочих столов
Диспетчер удаленных приложений RemoteApp устанавливается в составе службы роли Узел сеансов удаленных рабочих столов.
В этом разделе описывается порядок установки службы роли Узел сеансов удаленных рабочих столов.
Примечание: После установки службы роли Узел сеансов удаленных рабочих столов необходимо перезагрузить компьютер.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Рекомендации по оборудованию сервера:
- процессор: Quad 3.00 GHz;
- память: 1000 Мб для windows + 350 Мб для каждого сеанса;
Установка службы роли хост-сервера сеансов удаленных рабочих столов
- На компьютере, на котором требуется установить службу роли Узел сеансов удаленных рабочих столов, откройте средство Диспетчер серверов. Чтобы открыть компонент «Управление сервером», нажмите Пуск, Администрирование, а затем Управление сервером.
2. В группе Сводка по ролям выберите Добавить роли.
3. На странице Прежде чем, приступить к работе мастера добавления ролей нажмите кнопку
Далее.
4.На странице Выбор ролей сервера установите флажок Службы удаленных рабочих столов и нажмите кнопку
Далее.
5. На странице Службы удаленных рабочих столов нажмите кнопку
Далее.
6. На странице Выбор служб ролей установите флажок Узел сеансов удаленных рабочих столов, флажок лицензирование удаленных рабочих столов, флажок Веб-доступ к удаленным рабочим столам и нажмите кнопку
Далее.
7. На странице Удаление и повторная установка приложений для определения совместимости нажмите кнопку
Далее.
8. На странице Укажите метод подлинности для узла сеансов удаленных рабочих столов, выберите Не требовать проверку подлинности на уровне сети, нажмите на кнопку
Далее.
9. На странице Укажите режим лицензирования, выберите нужный режим, рекомендуется режим «На пользователя», и нажмите кнопку
Далее.
10. На странице Выберите группы пользователей, которым разрешен доступ к этому хост-серверу сеансов удаленных рабочих столов добавьте пользователей или группы, которые требуется добавить в группу «Пользователи удаленного рабочего стола»,
и нажмите кнопку Далее.,
11. На странице Настройка взаимодействия с пользователем выберите требуемый пользовательский интерфейс и нажмите кнопку
Далее.
12. На странице Настроить область обнаружения для лицензирования удаленных рабочих столов, нажмите на кнопку
Далее.
13. На странице Веб- сервер (IIS) нажмите на кнопку
Далее.
14. На странице Выбор служб ролей нажмите на кнопку
Далее.
15. На странице Подтвердите выбранные элементы убедитесь, что служба роли Узел сеансов удаленных рабочих столов выбрана для установки, и нажмите кнопку
Установить.
16. На странице Ход выполнения установки будет отображаться ход выполнения установки.
17. На странице Результаты установки будет предложено перезапустить сервер для завершения процесса установки. Нажмите кнопку Закрыть, а затем кнопку Да, чтобы перезапустить сервер.
18. После перезапуска сервера и входа в компьютер с использованием той же учетной записи пользователя установка завершится. При появлении страницы Результаты установки убедитесь, что установка сервера Узел сеансов удаленных рабочих столов выполнена
Установка программ
Приложения следует устанавливать на удаленный сервер после установки службы роли Узел сеансов удаленных рабочих столов. Приложения на сервер Узел сеансов удаленных рабочих столов устанавливаются так же, как и на локальный рабочий стол. Тем
не менее следует убедиться, что приложения устанавливаются для всех пользователей, а все необходимые компоненты приложений устанавливаются локально на сервер Узел сеансов удаленных рабочих столов.
В нашем случае, мы будем устанавливать систему DIRECTUM и Microsoft Office.
Проверка параметров удаленного подключения
По умолчанию удаленные подключения включены сразу после установки службы роли Узел сеансов удаленных рабочих столов. Чтобы добавить пользователей и группы, которым требуется подключение к серверу Узел сеансов удаленных рабочих столов, и проверить
или изменить параметры удаленного подключения, можно использовать следующую процедуру.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы проверить параметры удаленного подключения:
- На сервере Узел сеансов удаленных рабочих столов запустите средство «Система». Чтобы запустить инструмент «Система», нажмите кнопку Пуск, выберите пункт Выполнить, введите control system, а затем нажмите кнопку
ОК. - В группе Задачи выберите Параметры удаленного рабочего стола.
- В диалоговом окне Свойства системы на вкладке Удаленный выберите один из следующих вариантов, в зависимости от среды.
3.1. Разрешать подключения от компьютеров с любой версией удаленного рабочего стола (менее безопасно)
3.2. Разрешать подключения только от компьютеров с удаленным рабочим столом с сетевой проверкой подлинности (безопасность выше)
3.3. Для получения дополнительных сведений о двух параметрах на вкладке Удаленный щелкните ссылку Помогите мне выбрать.
4. Чтобы добавить пользователей и группы, которые необходимо подключить к серверу Узел сеансов удаленных рабочих столов с помощью удаленного рабочего стола, выберите пункт Выбрать пользователей, а затем нажмите кнопку Добавить. Добавляемые
пользователи и группы добавляются в группу «Пользователи удаленного рабочего стола».
Добавление программ в список удаленных приложений RemoteApp
Чтобы сделать программу доступной для пользователей удаленно через Диспетчер удаленных приложений RemoteApp, необходимо добавить ее в список Приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы добавить программу в список удаленных приложений RemoteApp:
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов
и Диспетчер удаленных приложений RemoteApp.
2. В области Действия щелкните Добавить удаленные приложения RemoteApp.
3. На странице Мастер удаленных приложений (RemoteApp) нажмите кнопку
Далее.
4. На странице Выберите программы для добавления в список удаленных приложений RemoteAppустановите флажки рядом с теми программами, которые следует добавить в список Удаленные приложения RemoteApp. Можно выбрать несколько программ, в нашей ситуации выбираем
DIRECTUM и Microsoft Office Application (Excel и Word). Нажмите на кнопку
Далее.
5. На странице Мастер удаленных приложений RemoteAppнажмите на кнопку
Готов.
Создание RDP-файла и Создание пакета установщика Windows
Создание RPD файла
С помощью мастера RemoteApp можно создать файл протокола удаленного рабочего стола (RDP-файл) из любого приложения в списке Удаленные приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов, который требуется настроить.
Чтобы создать RDP-файл:
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов и Диспетчер удаленных
приложений RemoteApp. - В списке Приложения RemoteApp выберите программу, для которой необходимо создать RDP-файл. Чтобы выбрать несколько программ, нажмите и удерживайте нажатой клавишу
CTRL при выборе программ. В нашей ситуации выберите «Проводник системы DIRECTUM».
3. В области Действия для программы или выбранных программ щелкните Создание RDP-файла.
4. На странице Мастер удаленных приложений нажмите кнопку Далее.
5. На странице Задание параметров пакета выполните следующие действия:
5.1.В поле Введите расположение для сохранения пакетов примите расположение по умолчанию или нажмите кнопку Обзор, чтобы указать новое расположение для сохранения RDP-файла.
5.2. В разделе Параметры хост-сервера сеансов удаленных рабочих столов нажмите кнопку Изменить, чтобы изменить имя сервера или номер порта протокола удаленного рабочего стола (RDP). По завершении нажмите кнопку
ОК.
5.3. Для того, чтобы подписать RDP-файл цифровой подписью, в области Параметры сертификата нажмите кнопку
Сменить, чтобы выбрать или изменить сертификат.
6. По завершении нажмите кнопку Далее.
7. На странице Просмотр параметров нажмите кнопку Готово.
Создание пакета установщика Windows(MSI)
С помощью мастера RemoteApp можно создать пакет установщика Microsoft Windows (.msi) из любого приложения в списке Удаленные приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы создать пакет установщика Windows
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов и Диспетчер удаленных
приложений RemoteApp. - В списке Приложения RemoteApp выберите программу, для которой необходимо создать пакет установщика Windows. Чтобы выбрать несколько программ, нажмите и удерживайте нажатой клавишу CTRL при выборе программ.
- В области Действия для программы или выбранных программ щелкните Создание пакета установщика Windows.
- На странице Мастер удаленных приложений (RemoteApp) нажмите кнопку Далее.
- На странице Задание параметров пакета выполните следующие действия:
5.1. В поле Введите расположение для сохранения пакетов примите расположение по умолчанию или нажмите кнопку Обзор, чтобы указать новое расположение для сохранения пакета установщика Windows.
5.2. В разделе Параметры хост-сервера сеансов удаленных рабочих столов нажмите кнопку Изменить, чтобы изменить имя сервера или номер порта протокола удаленного рабочего стола (RDP). По завершении нажмите кнопку
ОК.
5.3. В области Параметры шлюза удаленных рабочих столов нажмите кнопку
Изменить, чтобы изменить текущую настройку или задать, будут ли клиенты использовать сервер Шлюз удаленного рабочего стола для подключения к
целевому серверу Узел сеансов удаленных рабочих столов через брандмауэр. По завершении нажмите кнопку
ОК.
5.4. Для того, чтобы подписать файл цифровой подписью, в области Параметры сертификата нажмите кнопку
Сменить, чтобы выбрать или изменить сертификат. Выберите нужный сертификат и нажмите кнопку
ОК.
6. По завершении нажмите кнопку Далее.
7. На странице Настройка пакета распространения выполните следующие действия:
7.1. В области Значки ярлыков укажите, где будет располагаться ярлык программы на клиентских компьютерах.
7.2. В области Обрабатывать расширения файлов клиента укажите, будет ли данная программа обрабатывать расширения имен файлов клиентов.
Если сопоставить расширения имен файлов на клиентском компьютере с Удаленное приложение RemoteApp, все расширения имен файлов, обрабатываемые приложением на сервере Узел сеансов удаленных рабочих столов, также будут сопоставлены на клиентском компьютере
с Удаленное приложение RemoteApp. Обратите внимание, что пользователи не получают запроса на подтверждение обработки сервером Узел сеансов удаленных рабочих столов расширений файлов для приложения.
Чтобы просмотреть, какие расширения имен файлов сопоставлены с приложением на сервере Узел сеансов удаленных рабочих столов, нажмите кнопку Пуск, выберите пункт Панель управления, а затем дважды щелкните компонент Программы по умолчанию. Нажмите
кнопку Сопоставление типа файла или протокола программе, чтобы просмотреть расширения имен файлов и связанные с ними по умолчанию программы.
8. После того, как свойства пакета распространения настроены, нажмите кнопку
Далее.
9. На странице Просмотр параметров нажмите кнопку Готово.
После завершения работы мастера в новом окне будет открыта папка, в которой был сохранен пакет установщика Windows. Таким образом можно убедиться, что пакет установщика Windows (.msi) был создан.
Тестирование системы
DIRECTUMв режиме RemoteApp
Общее сведение
В режиме RemoteaApp, система DIRECTUM работает в полном режиме, это значит, что все компонентов системы доступны.
Для подключения к системе DIRECTUM в режиме RemoteApp:
- запустить Rds файл, создан и выдан клиенту администратором сервера;
- установить на клиентский компьютер *.msi-пакет, также созданный и выданный администратором сервера. В этой случае создается ярлык системы DIRECTUMв меню пуск, как если бы система была установлена на локальном ПК;
- через веб доступа терминальной службы.
This guide shows how to install, configure, and maintain a terminal server farm based on the Remote Desktop Services (RDS) role on Windows Server. The article will help you to deploy Remote Desktop Services on Windows Server 2022, 2019, or 2016 in an Active Directory domain.
Contents:
- Remote Desktop Services (RDS) Components Architecture
- Creating a New RDS Deployment on Windows Server
- Create Remote Desktop Services Collections on Windows Server
- How to Publish RemoteApps in Remote Desktop Services?
- How to Deploy Remote Desktop Services Farm Using PowerShell?
Remote Desktop Services (RDS) Components Architecture
The RDS role in Windows Server includes the following components:
- Remote Desktop Session Host (RDSH) – RDS session hosts. These are the main workhorses of an RDS farm on which user apps run;
- Remote Desktop Connection Broker (RDCB) – an RDS connection broker. It is used to manage an RDS farm, distribute the workload, reconnect users to their sessions, store RDS collection settings, and published RemoteApps;
- Remote Desktop Gateway (RDGW) – provides secure access to the RDS farm from the Internet;
- RD Web Access (RDWA) – a web interface to access remote desktops and RemoteApps;
- Remote Desktop Licensing (RD Licensing) — a licensing service for managing RDS licenses (CALs).
In our small RDS deployment, there are only three Windows Server hosts with the following roles:
mun-rds1.woshub.com
— RDSHmun-rds2.woshub.com
– RDSHmun-rdsman.woshub.com
– RDSH, RDWA, RDCB, and RD Licensing
Prerequisites to create an RDS farm:
- Install the same version of Windows Server on all RDS hosts, configure them, and join the AD domain;
- Open the ADUC console (dsa.msc) and move all hosts with the RDSH role to the same Active Directory OU (Organizational Unit). Thus, it will be easier to apply RDS settings using GPO;
- Create an Active Directory domain security group for RDSH servers (for example, mun-rdsh) and add all hosts to it;
- If you want to use User Profile Disks (UPD) to store RDS user profiles (or roaming profiles), you must create a shared network folder on a file server (it is recommended to place the shared folder on a File Server Failover Cluster running Windows Serveer). Grant Full Control permissions on the shared folder for the mun-rdsh group.
Creating a New RDS Deployment on Windows Server
Let’s see how to create and configure an RDS configuration using the Server Manager GUI.
Open the Server Manager and add all RDS servers you want to the console. Click All Servers -> Add servers.
Click the Server Manager menu and select Add Roles and Features -> Remote Desktop Services installation -> Standard deployment –> Session-based deployment.
Quick Start mode is used to deploy all RDS roles on a single server. An RDS farm can have only one server running all RDS roles (RD Session Host, RD Web Access, and RD Connection broker). However, this configuration doesn’t provide fault-tolerance and workload balancing in Windows Server Remote Desktop Services.
Then specify which RDS roles you want to assign to your hosts. Select the servers for the corresponding roles in the RDS farm creation wizard. In my case, I want to build the following RDS configuration:
- RD Connection Broker –
mun-rdsman
- RD Web Access —
mun-rdsman
- RD Session hosts —
mun-rdsman
,mun-rds1
,mun-rds2
You can distribute RDS roles among servers in any other configuration.
Check Restart destination server automatically if required and click Deploy. Wait until the RDS roles are installed on all servers.
So, your RDS farm is created.
The next step is to install and configure the RDS licensing server. You can install the RD Licensing role on one of the servers on your farm or use an existing RDS licensing server in your domain. Check the detailed guide on how to install, configure and activate the RD Licensing role.
To manage your RDS deployment, open Server Manager -> Remote Desktop Services. The current RDS farm configuration is displayed on the Overview tab.
To change the RDS farm settings, select Tasks -> Edit Deployment Properties in the Deployment Overview section.
Here you can change:
- RD Gateway settings;
- Licensing server address and RDS CAL type (per user/per device);
- View RD Web Access URL;
- Add SSL certificates for RDS (we will skip this step it in the guide).
To build a fault-tolerant Remote Desktop Services farm, you have to provide high availability for the RD Connection Broker role. This is achieved by running multiple RDCB instances (Active/Active) on different servers with a shared SQL Server database that stores the connection broker configuration. You can use the SQL Server Always On high-availability group to make the RDCB SQL database high available. Earlier we published a detailed guide on how to configure a highly available RDS Connection Broker.
Create Remote Desktop Services Collections on Windows Server
The next step is to create collections of RDS sessions. Remote Desktop collections allow to split hosts in an RDS farm into separate groups or create different sets of settings and available Remote Apps for different groups of users.
Go to Collections and select Edit -> Create Session Collection.
Here you need to:
- Specify an RDS collection name:
rds-Mun-Managers
; - Select which RDS hosts will serve collection users (one RDSH server may belong to one collection, it is not recommended to have hosts with different Windows Server versions in the same collection);
- In the User Groups tab, specify the groups of users allowed to connect to the collection. Remove the Domain users from the groups and add your group (
mun-Managers
); - On the User Profile Disk tab, check Enable user profile disks if you want to use the UPD vhdx file format to store user profiles. In the Location of user profile disks field, specify the UNC path to your shared folder (for example,
\mun-fs01munrds_upd
), in which user profile files in the UPD format will be stored and the maximum size of the disk (20 GB by default). When using UPD, if a user logs on to any RDS collection host, the user’s shared profile will always be loaded; - Click Create to create a new RDS collection;
- Make sure that the UPD file (UVHD-template.vhdx) with the user profile template is created in the specified directory.
To configure RDS collection settings, select the collection and click Tasks -> Edit Properties.
Here you can change basic collection options (name, description, access groups), and some other settings.
On the Session tab, you may configure reconnection/automatic disconnection options for inactive (idle) RDP sessions (learn more How to Configure Timeouts for RDP Sessions).
In the Security tab, you may select security (Negotiate, RDP Security level, or SSL/TLS) and encryption (Low, High, Client compatible, or FIPS compliant) settings for RDP sessions. Here you can enable/disable Network Level Authentication (NLA) for RDP.
In the Load Balancing tab, you may change RDS host Relative Weight in your farm. If server characteristics (RAM, CPU) in a collection are very different, you need to set a lower weight for the hosts with lower performance. After that, RDCB will distribute user sessions among RDS hosts depending on their weight.
The Client Settings tab allows you to specify which local devices users are allowed to redirect to their RDP sessions. For example, you may enable or disable the redirection of printers, drives, audio devices, or the clipboard from a local user computer to the RDS session.
In the User Profile Disks tab, you may fine-tune UPD settings. You may exclude certain folders or files from sync. It allows to reduce the UPD profile size in a shared network folder and makes a profile load faster (remember that it is loaded over the network from the shared folder when a user logs on).
It is easier to configure and use UPD than roaming profiles or folder redirection. You cannot use the same UPD profile in more than one RDS collection.
To reduce the size of a user UPD disk, you can use the built-in PowerShell cmdlet Resize-VHD
, which is used to resize Hyper-V virtual VHDX disks.
You can put any RDSH server into maintenance mode (RDS Drain Mode) through the HOST SERVERS section of the RDS collection. To do it, click a server and select Do not allow new connection. Then the Connection Broker will not send new user sessions to the RD host. In this mode, you can install Windows updates or update apps on the server without affecting the users.
Here you can also add/remove an RDS host from a collection.
If the RD Session Host server fails, you can properly remove it from your Remote Desktop Services deployment by following this guide.
How to Publish RemoteApps in Remote Desktop Services?
RemoteApps are programs published for users on RDS servers. Thanks to RemoteApps, you may use apps installed on a terminal RDSH server as if they are running on a local user computer. The user doesn’t see the entire Windows Server RDS desktop and works only with those apps an administrator has published for them. Only the window of the program running on RDS will be displayed on the user’s computer.
If you don’t create RemoteApps, users will work directly on the Windows Server desktop. So remember to copy the app shortcuts a user may need to C:UsersPublicDesktop. Files from this folder will be displayed on the desktops of all users. If you want to install an MS Office 365 on your RDSH, note that Office must be deployed in the SharedComputerLicensing mode.
RemoteApps are created in the RDS collection settings. Select Tasks -> Publish RemoteApp Programs in the REMOTEAPP PROGRAMS section.
Windows will list all apps installed on the current RD host. You may select one of them. If there is no app you need in the list, but it is installed on other RDS hosts, click Add and specify the full path to the application’s executable (exe, bat, cmd, etc.).
Publish the RemoteApp.
Then you can specify additional app options in the RemoteApp settings.
- Whether you want to show a published RemoteApp in the RD Web Access web interface;
- Set startup options (arguments) for the app (Command-line Parameters -> Always use the following command-line parameters);
- On the User Assignment tab, you can also set restrictions on whether a user or group may run the app.
If you want to change an icon of the published RemoteApp, open the following folder on the server with the RDS Connection Broker role:
C:WindowsRemotePackagesCPubFarmsrds-Mun-ManagersCPubRemoteApps
Replace the app icon with another ICO file.
Then a user can run a RemoteApp program from RD Web Access (https://mun-rdsman.woshub.com/RDWeb
) or using a special *.RDP file.
To run a published RemoteApp program, you need to add the following lines to the RDP file:
remoteapplicationmode:i:1 remoteapplicationname:s:putty remoteapplicationprogram:s:"C:Toolsputty.exe" disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe
Some useful tips to use your RDS farm conveniently:
- You can configure HTML5 support for the RDWeb Access role. It allows users to connect to RDS servers using any browser or OS even without an RDP client;
- On the RD Web Access server, you can publish a link to change an expired user password (by default, if NLA is enabled you won’t be able to authenticate on an RDSH with an expired Active Directory user password);
- A user guide on how to change a password in an RDP session;
- An administrator can use RD Session Shadow connections to connect/view the desktop of a user session on an RDS server;
- To quickly find which RDS servers have sessions of a specific user, you can use PowerShell:
Import-Module RemoteDesktop
Get-RDUserSession -ConnectionBroker mun-rdsman.woshub.com | where {$_.UserName -eq "a.muller"} | Select HostServer - You can use PowerShell scripts to view RDP connection logs;
- To provide additional security, you can enable two-factor authentication (2FA) for users on your Windows RDS hosts using third-party tools.
How to Deploy Remote Desktop Services Farm Using PowerShell?
If you clearly see the structure of an RDS farm, you can quickly deploy your RDS configuration using PowerShell.
It is better to run the following PowerShell commands to create an RDS farm on another server since you will have to restart managed RDS hosts.
Set the server names in your RDS farm. In this example, I will install the RDCB and RDS licensing roles on separate servers (later it is recommended to enable a highly available RDCB configuration).
$RDSH1 = "mun-rds1.woshub.com"
$RDSH2 = "mun-rds2.woshub.com"
$RDSCB = "mun-rdcb.woshub.com"
$RDSGW = "mun-rdsgw.woshub.com"
Import-Module RemoteDesktop
Install RDS roles on the servers:
Add-WindowsFeature –ComputerName $RDSH1, $RDSH2 -Name RDS-RD-Server –IncludeManagementTools
Add-WindowsFeature –ComputerName $RDSCB -Name RDS-Connection-Broker -IncludeManagementTools
Add-WindowsFeature –ComputerName $RDSGW -Name RDS-Web-Access, RDS-Gateway –IncludeManagementTools
Restart all hosts:
Restart-Computer -ComputerName $RDSH1,$RDSH2,$RDSCB,$RDSGW
Create a new RDSessionDeployment instance:
New-RDSessionDeployment -ConnectionBroker $RDSCB -SessionHost $RDSH1,$RDSH2 –Verbose
Add RDWA and RDGW servers to your farm:
Add-RDServer -Server $RDSGW -Role RDS-WEB-ACCESS -ConnectionBroker $RDSCB
Add-RDServer -Server $RDSGW -Role RDS-GATEWAY -ConnectionBroker $RDSCB -GatewayExternalFqdn "rds.woshub.com"
You can list the RDS roles and hostnames in your farm:
Get-RDServer -ConnectionBroker $RDSGW
Install the RDS Licensing role using the Add-WindowsFeatures cmdlet:
Add-WindowsFeature –ComputerName $RDSCB -Name RDS-Licensing, RDS-Licensing-UI
Set a PerUser RDS licensing mode:
Invoke-Command -ComputerName $RDSCB -ScriptBlock {Set-RDLicenseConfiguration -Mode PerUser -LicenseServer $RDSCB -ConnectionBroker $RDSCB}
Add-RDServer -Server $RDSCB -Role RDS-LICENSING -ConnectionBroker $RDSCB
Add a licensing server to a domain security group using Add-ADGroupMember:
Add-ADGroupMember "Terminal Server License Servers" -Members "mun-rdcb$"
If you have a certificate for the RDS, you can add it to your farm configuration (you may use the free Let’s Encrypt SSL certificate for your RDS host):
$Path = "C:psRDSCert.pfx"
$Password = ConvertTo-SecureString -String "setCertificPAssw00rd11-" -AsPlainText -Force
Set-RDCertificate -Role RDGateway -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDWebAccess -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDPublishing -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDRedirector -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
To get information about the installed SSL certificates:
Get-RDCertificate
Then you can create RDS collections:
$CollectionName = "ITdept"
New-RDSessionCollection –CollectionName $CollectionName –SessionHost $RDSH1,$RDSH2 –ConnectionBroker $RDSCB –CollectionDescription “IT department management collection”
To allow access to RDS servers for groups:
$UserGroup =@("WOSHUBmun-admins","WOSHUBmun-devops")
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup $UserGroup
To publish a RemoteApp program:
New-RDRemoteapp -Alias GoogleChrome -DisplayName GoogleChrome -FilePath "C:Program Files (x86)GoogleChromeApplicationchrome.exe" -ShowInWebAccess 1 -CollectionName $CollectionName -ConnectionBroker $RDSCB
In this article, we covered how to install and configure a Remote Desktop Services farm on Windows Server 2019/2022 using the Server Manager graphical interface and PowerShell. The RD Web Access and RD Gateway roles are not described here. We’ll show how to configure these roles in future articles.
As organizations have transitioned to supported their remote workforce, these have been tasked with delivering the technology tools needed by the remote workforce to carry out business-critical operations. Many businesses may be using Windows Server 2019 Remote Desktop Services for both desktop session virtualization and virtual application delivery. To minimize the issues that come from end-users accessing the RemoteApps published from your Windows Server 2019 server, you want to make the experience as seamless as possible. Let’s look at how to make sure the credentials are passed from client workstations accessing RemoteApps and configure Windows Server RDS 2019 SSO.
What is Single Sign-On (SSO)
Single sign-on (SSO) for end-users ensures that they have the most seamless experience possible when working with published RemoteApps. This means the user they are logged in with on their workstation is passed over to the remote desktop connection backing the published RemoteApps.
This provides the best experience for the end-user as they get the seamless experience of simply clicking the icon for the published app. It launches without any additional entering of username or password.
What is RemoteApp?
RemoteApps are a feature of RDS that allows essentially “streaming” an application over an RDP connection. This means the end-user experience is virtually the same as working with a locally installed application and provides many benefits.
Benefits of RemoteApp
What are the benefits of Windows Server RDS RemoteApp? RemoteApp provides a number of benefits to organizations compared to full desktop sessions presented in RDS. First of all, many end-users only need access to applications and not full desktops. For many end-users who may have access to a full desktop session, all they really do with that desktop session is launch an application. If this is the case, why not simply publish a RemoteApp application?
RemoteApp publishes require far fewer resources than a full desktop session. This means you can host many more users using RemoteApp as opposed to a full desktop session. The end result is the ability to have a much smaller hardware and overall infrastructure footprint using RemoteApp.
RemoteApp can also help to narrow in the scope of application resources. By streaming an application from a Remote Desktop Session Host, the only resource that needs to directly connect from a network perspective to application resources is the RDSH server. This can greatly help from a security perspective.
The process to configure Windows Server RDS 2019 SSO is fairly straightforward. However, there is a tweak I had to make with the RDP file that is created from the RemoteApp publish. More on that a bit later.
Let’s look and see how you configure single sign-on (SSO) for desktop sessions and RemoteApp. This is made possible by means of a group policy setting on the client side. This means this is a setting you configure on the Windows 10 client that is initiating the RDS or RemoteApp connection.
In Windows 10, navigate to Computer Configuration > Administrative Templates > System > Credentials Delegation > Allow delegating default credentials.
On the Allow delegating default credentials policy dialog box, click the Show button next to Add servers to the list.
This opens a Show Contents dialog box. In the dialog box add the names of your Windows Server 2019 RDS servers in the format below. Note the TERMSRV/ in front of the server name.
TERMSRV/win19rds.cloud.local TERMSRV/win19rds
After you enable the server names for credential delegation, you should be able to launch RDS 2019 SSO connections without being prompted for your credentials. The same is true of RemoteApps. However, I did run into an issue with RemoteApp below.
Username format issue for SSO
You may find that after you enable the SSO entries for delegated permissions to target your Windows Server 2019 RDSH box, your plain RDP connection to the RDSH server work as expected, but not the RemoteApp connection.
I found this to be the case as well. However, what I noticed was that by default, when you publish a RemoteApp from Windows Server 2019, the RD Gateway Server expects the username in the UPN format. As a quick refresher, usernames can be formatted in a couple of different ways.
- DOMAINusername – This is known as the NetBIOS domain format with a separator and then the username.
- [email protected] – This is known as the UPN format or user principal name.
You can read more about user name formats in the Microsoft KB here:
- User Name Formats
I had to tweak the RDP file that I downloaded from the Windows Server 2019 RDS server for it to correctly pass the credentials. I am still trying to flush out if this is specific to my lab environment. In case you run into this in your own environment, this is what I had to do.
- Edit your RDP file in notepad.
- Change the value gatewaycredentialssource:i:0 to
- gatewaycredentialssource:i:2
This denotes that it uses the same logged in user for your gateway server connection.
Concluding Thoughts
To configure Windows Server RDS 2019 SSO this is basically a setting in group policy applied to your client workstation that will be running the RDS session or RemoteApp connection. Once you configure the setting to delegate your credentials, you will be able to simply launch an RDP session or RemoteApp session to the RDS server and not reenter your credentials.
A step by step guide to build a Windows Server 2019 Remote Desktop Services deployment.
I posted this before based on Windows Server 2012 R2 RDS and thought it was high time to update this post to a more modern OS version.
I will provide all the steps necessary for deploying a single server solution using the GUI tools.
Although it is called a single server installation, we will need 2 servers as shown below.
Software used in this guide:
Windows Server 2019 ISO (evaluation can be downloaded here: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019).
SQL Server 2017 Express x64 (free version can be downloaded here: https://www.microsoft.com/en-us/download/details.aspx?id=55994).
SQL Server 2016 Native Client (free version can be downloaded here: https://www.microsoft.com/en-us/download/details.aspx?id=52676. After clicking the download button select ENUx64sqlncli.msi). Although I’m installing SQL Express 2017, there are no newer client tools available.
SQL Server Management Studio (free, and can be downloaded here: https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms).
And a certificate. I got mine for free from https://www.sslforfree.com/. This certificate needs to contain the FQDN you will use as the RD Web Access URL (mine is rds.it-worxx.nl in this guide). It needs to be in .pfx format and you need to have the private key in it.
This guide will not focus on building a domain using a single domain controller and adding the second server as a member server to this domain.
Also some basic knowledge is assumed in this guide. I will not detail how to create a Security Group and adding a computer account to it. I will also not detail how to install SQL Express, or adding logins to a SQL Server Instance security context. If you need extra help with this, Bing it or drop me a mail with details, and I will provide steps to continue.
I will be using Hyper-V on my Windows 10 1809 laptop and I have prepared 2 servers:
ITWDC (1 vCPU, 1024MB memory, dynamic, 60GB Harddisk)
Installed Windows
IPv4 192.168.0.4/24
Added .NET Framework 3.5 as a feature
Added Active Directory Domain Services as a role
Configured this server as a Domain Controller in a new forest: it-worxx.lab
ITWRDS (1 vCPU, 1024MB memory, dynamic, 60GB Harddisk)
Installed Windows
Added .NET Framework 3.5 as a feature
IPv4 192.168.0.10/24, DNS server 192.168.0.4
Configured it as a member server in the it-worxx.lab domain
Installing the Remote Desktop Services Roles
Log on to the Domain Controller, and in Server Manager right-click the All Servers node and add the second server using the Add Servers command (or select the All Servers node, click Manage and click Add Servers).
Now that all servers needed in this deployment scenario are present, click Manage, and click Add Roles & Features.
Before you begin
Click Next.
Select Installation Type
Select Remote Desktop Services installation.
Click Next.
Select Deployment Type
Although Quick Start might be a valid option for a single server deployment, leave the default selected. This will explain the steps necessary to install Remote Desktop Services in greater detail.
Click Next.
Select Deployment Scenario
Select Session-based desktop deployment.
Click Next.
Review Role Services
Review the services that will be installed.
Click Next.
Specify RD Connection Broker server
Click the member server and click the Add button.
Click Next.
Specify RD Web Access server
Check Install the RD Web Access role on the RD Connection Broker server.
Click Next.
Specify RD Session Host server
Click the member server and click the Add button.
Click Next.
Confirm selections
Check Restart the destination server automatically if required.
Click Deploy.
View progress
Wait until all role services are deployed and the member server has restarted.
Click Close.
In Server Manager click Remote Desktop Services and scroll down to the overview.
As you can see the deployment is missing a RD Gateway server and a RD Licensing server.
Click the Add RD Licensing server button.
Select a server
Click the domain controller and click the Add button.
Click Next.
Confirm selections
Click Add.
View progress
Wait until the role service is deployed. No restart is needed.
Click Close.
Click the Add RD Gateway server button.
Select a server
Click the member server and click the Add button.
Click Next.
Name the self-signed SSL certificate
The wizard creates a self-signed certificate. We will deal with certificates in this deployment in a little bit. We will replace the self-signed certificate.
Enter the external Fully Qualified Domain Name which you will also use for the Web Access URL. In my case, for lack of a better name, I used “rds.it-worxx.nl”. I didn’t want to use “remote.it-worxx.nl” or “desktop.it-worxx.nl” or anything else.
Click Next.
Confirm selections
Click Add.
View progress
Wait until the role service is deployed. Again, no restart is needed.
Notice that “rds.it-worxx.nl” was configured for the deployment.
Also notice that even more certificate configuring is needed, but we’ll get to that later. Pay no attention to it for now. The same goes for the RD Gateway properties for the deployment. We’ll get to that later.
Click Close.
Review role installation and setting License Mode
Let’s have a quick look at the configuration we have so far.
In Server Manager, Remote Desktop Services, Overview, click Tasks and click Edit Deployment Properties.
Configure the deployment
Review the RD Gateway settings and notice what settings are available.
Click RD Licensing.
Configure the deployment
Notice that an RD License server is available, but no license type is selected yet.
I selected Per User, but since this is just a guide setup, it really doesn’t matter.
Click RD Web Access.
Configure the deployment
By default the RD Web Access IIS application is installed in /RdWeb.
If you want to know how to change this, check another post: https://msfreaks.wordpress.com/2013/12/07/redirect-to-the-remote-web-access-pages-rdweb/
This is for Windows Server 2012 R2 RDS, but it also works for Windows Server 2019 RDS.
Click Certificates.
Configure the deployment
Notice that the certificate level currently has a status of Not Configured.
As you can see, certificates are used for different goals within the deployment.
The RD Gateway certificate is used for Client to gateway communication and needs to be trusted by the clients. Either install the self-signed certificate on all clients, or use a certificate for which the complete certificate chain is already trusted by all clients. As it said in the wizard, the external FQDN should be on the certificate.
The RD Web Access certificate is used by IIS to provide a server identity to the browser clients.
The RD Connection Broker actually has two goals for which it needs certificates. To enable single sign on (server to server authentication), and for publishing (signing RDP files). If you look in the deployment you’ll see that the Connection Broker is now configured to use “itwrds.it-worxx.lab”, so we have to change it to use an external FQDN as well.
If we use the same FQDN for all goals described above, we need only 1 certificate, and only 1 external IP address.
We’ll come back to this wizard later to assign the certificate. First order of business is to change the internal FQDN for the Connection Broker to an external FQDN.
Click OK (no reason why we shouldn’t commit the change we made on the licensing tab, remember?)
Changing the Connection Broker FQDN to an externally resolvable FQDN
Open DNS Manager on the domain controller and browse to Forward Lookup Zones.
Right click Forward Lookup Zones and click New Zone… Go through this wizard accepting the defaults until you have to enter a Zone Name.
Enter the external FQDN which will also be used by the Connection Broker.
Finish the rest of the wizard accepting the defaults.
Browse to the newly created zone.
Right click the newly created zone and click New Host (A or AAAA)…
New Host
Leave the Name field blank, but enter the member server’s (holding the RD Connection Broker role) IPv4 address.
Click Add Host.
Now the configuration will be able to resolve “rds.it-worxx.nl” to the server holding the Connection Broker role, and this will work because “rds.it-worxx.nl” is also on the certificate that we will configure later.
Create a new Global Security Group called “RD Connection Brokers” and add the computer account for the member server to it as a group member.
We need this group to be able to convert the RD Connection Broker to a highly available RD Connection Broker. You’ll see why we need to do this in a few steps.
Reboot the member server to let it know it’s a member of the RDS Connection Brokers security group.
The next steps in re-configuring the RD Connection Broker depend on an SQL database shared by all Connection Brokers in the deployment. Without this configuration the RD Connection Broker will rely on the Windows Internal Database that was created during the initial deployment of the roles.
Install SQL Express on the Domain Controller (or use an existing SQL Server if you already have one).
It’s not best practice to install SQL onto a Domain Controller, but it’ll do for this guide.
Here’s a list of needed features:
Use the Default Instance (so click Default, and do not leave the wizard’s selection on Named instance: SQLEXPRESS).
Set the SQL Service to start using SYSTEM because the default account of SQLSERVER cannot be used on a Domain Controller.
When the installation is done open SQL Configuration manager and browse to Client Protocols under SQL Native Client 11.0 Configuration.
Check if TCP/IP is enabled under Client Protocols. SQL Express install enables this by default, but check it just to be sure, especially if you use an existing SQL Server.
Browse to Protocols for MSSQLSERVER under SQL Server Network Configuration.
Enable TCP/IP. If this is a new SQL installation, this will be disabled by default.
Restart the SQL Server service if you changed this setting.
On the SQL Server, make sure port 1433 is not being blocked by Windows Firewall.
I added the SQL Server executable to the exception list to allow all inbound traffic, but TCP 1433 inbound should suffice.
If you installed SQL Server using the default folder locations, the sqlservr.exe executable is found in “C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLBinn”.
Open SQL Server Management Studio, connect to the default instance on the Domain Controller and browse to Logins under Security.
Remember the Management Studio is no longer available with the SQL Server download, but is a different download.
Right click Logins and click New Login…
Login – New
Click Search…
Select User, Service Account, or Group
Click Object Types… and select Group.
Type the RDS Connection Brokers security group name and click Check Names.
Click OK.
Login – New
Click Server Roles and select dbcreator.
Click OK.
We have just effectively granted the RDS Connection Broker server the right to create databases.
We need this because the RDS Connection Broker service will try to migrate from WID (Windows Internal Database to a (high available) SQL Server instance when we convert the Broker to a high available broker.
Install the SQL Native Client on the member server (Client Components only). If you used the member server in this setup to install the SQL Management Studio, you can skip this step because the Native Client was installed with installing the Management Studio.
Everything we need is in place to convert the RD Connection Broker, so let’s do just that.
In Server Manager click Remote Desktop Services and scroll down to the overview.
Right click RD Connection Broker and click Configure High Availability.
Before you begin
So we’re building a single node cluster here
Look at the pre-requisites.
If you have more than one RD Connection Broker they need to be configured using DNS Round Robin.
Click Next.
Configure RD Connection Broker for High Availability
Since we just installed an SQL Server for this, leave the default selected. You’d use the other option for instance if you’d like to use Azure SQL for this deployment.
Click Next.
Configure RD Connection Broker for High Availability
DNS name for the RD Connection Broker cluster:
The DNS Zone name we configured in DNS earlier: rds.it-worxx.nl
Connection string:
DRIVER=SQL Server Native Client 11.0;SERVER=ITWDC;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=ITWRDCB
Folder to store database files:
C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLDATA
I used the instance default folder.
Click Next.
Confirmation
If you get an error before this page:
- Check if TCP/IP is enabled in client protocols and for your instance
- Check if you can reach port 1433 on the SQL Server from the member server
Click Configure.
Progress
If you get an error on this page:
- Check SQL permissions for the security group
- Check if the database path you entered is correct
Click Close.
The RD Connection Broker is now in High Availability Mode, and configured as “rds.it-worxx.nl” and we are finally ready to complete the configuration.
Configuring Certificates
In Server Manager, Remote Desktop Services, Overview, click Tasks and click Edit Deployment Properties, then click Certificates.
Configure the deployment
Click RD Connection Broker – Enable Single Sign On and click Select Existing certificate.
Browse to the .pfx file, enter its password, and check Allow the certificate..
Click OK.
So click Apply. This takes a little while, be patient.
Configure the deployment
Click RD Connection Broker – Publishing and click Select Existing certificate.
Browse to the .pfx file, enter its password, and check Allow the certificate..
Click OK.
Click Apply. This again takes a little while, be a little more patient.
Configure the deployment
Click RD Web Access and click Select Existing certificate.
Note: Did you notice the warning when you select RD Web Access?
Browse to the .pfx file, enter its password, and check Allow the certificate..
Click OK.
Click Apply again. This takes another little while longer, be slightly more patient.
Configure the deployment
Last one. Click RD Gateway and click Select Existing certificate.
Browse to the .pfx file, enter its password, and check Allow the certificate..
Click OK.
Click OK to apply the final certificate step.
Configured all servers, configured certificates..
One thing left to do: Tell our RDS environment exactly what to publish.
Publishing resources to your users
In fact you can use this setup to either provide full desktop sessions on the Session Host, or you can choose to publish only applications on the Session Host.
Let’s publish full desktop sessions.
In Server Manager, Remote Desktop Services, Session Collections, click Tasks and click Create Session Collection.
Before you begin
Review the requirements. This won’t be an issue in this setup, but you could restrict access to this collection by selecting a select group of people.
Click Next.
Name the collection
Enter a descriptive name. This name will be displayed under its icon in the Web Access interface.
Click Next.
Specify RD Session Host servers
Click the member server and click the Add button.
Click Next.
Specify user groups
You can limit access to the resource here if you want. Add one or more groups to restrict access to these groups only. In this setup the default selection of Domain Users will do fine. Groups you specify here will be added to the list of groups of users that are allowed to connect using RDP to the Session Host server(s).
Click Next.
Specify user profile disks
User profile disks are not in focus in this guide. Since I have no file shares configured in this setup, uncheck Enable user profile disks for now.
Click Next.
Confirm selections
Review the information and click Create.
View Progress
Wait until the collection is created and the server is added to the collection.
Click Close.
Time to test the setup!
Testing the setup
On a machine that has access to your test setup (you may have to add the external FQDN to your hosts file if you didn’t publish it to the internet) open https://rds.it-worxx.nl/rdweb
Hey! At least the RD Web Access application works
Enter a valid username and password (IT-WORXXusername or username@it-worxx.lab).
Create a user for this, or simply use the domain admin account.
Click Sign in.
After logging in you are presented with the full desktop session collection we created.
After clicking the Full Desktop icon you get the warning that devices are going to be redirected.
And when you click Connect, you connect
Enjoy.
Arjan