Установим роли терминального сервера на Windows Server 2019 и лицензируем. Маленькая тонкость — сервер не в домене.
Подготовка Windows Server 2019
Для начала установим сам сервер. Всё необходимое вынесено в отдельную статью:
Установка Windows Server 2019 на виртуальную машину VMware
Не забываем про настройку:
Первоначальная настройка Windows Server 2019
Итак, операционная система установлена и настроена. Сервер в рабочей группе WORKGROUP.
Установка роли терминального сервера
Нам понадобится установить две роли, можно выполнить установку одновременно, я предлагаю инструкцию с минимальным количеством перезагрузок.
Роль Remote Desktop Licensing
Входим в Server Manager. Справа вверху выбираем Manage > Add Roles and Features.
Попадаем в раздел Before You Begin.
Это начальная страница, пропускаем. Next.
Попадаем в раздел Installation Type. Для установки сервиса удаленных рабочих столов предусмотрен специальный мастер Remote Desktop Services installation, но нам не удастся его использовать, поскольку сервер не в домене. Выбираем Role-based or feature-based installation. Next.
Попадаем в раздел Server Selection. Выбираем текущий сервер. Next.
Попадаем в раздел Server Roles. Выделяем галкой роль Remote Desktop Services. Next.
Попадаем в раздел Features. Здесь ничего дополнительно не выбираем. Next.
Попадаем в раздел Remote Desktop Services. Ненужное нам окошко. Next.
Попадаем в раздел Role Services. Первая роль, которую нам нужно установить, это Remote Desktop Licensing. Выделяем галкой.
Нам предлагают установить дополнительные фичи, которые требуются для данной роли. Соглашаемся, Add Features.
Remote Desktop Licensing выделено галкой, Next.
Попадаем в раздел Confirmation. Install.
Начинается установка роли.
Роль Remote Desktop Licensing успешно установлена. Примечательно, что перезагрузка не требуется.
Открываем Windows Administrative Tools.
Переходим в папку Remote Desktop Services.
Запускаем оснастку Remote Desktop Licensing Manager.
Выбираем наш сервер, правой кнопкой — активировать.
Открывается окно активации. Next.
Выбираем метод соединения Web Browser. Next.
Получаем код продукта который нам понадобится для активации (Product ID). Копируем.
В браузере открываем сайт https://activate.microsoft.com/
Выбираем «Activate a license server». Next.
Вводим Product ID полученный ранее, организацию и любую страну или регион. Next. Next.
Если все сделано правильно, то мы получим необходимый код сервера лицензирования. Копируем его. На вопрос «Do you wish to install client access licenses now on the license server with this product ID?» отвечаем «Yes» и пока возвращаемся к терминальному серверу, к текущему окну ещё вернёмся.
Вводим код в открытом мастере, жмём Next.
Устанавливаем галку «Start Install Licenses Wizard now». Next.
Открывается мастер установки лицензий. Next.
Нас просят ввести license key pack ID. Возвращаемся к браузеру.
Вставляем License Server ID, в качестве программы лицензирования, по идее он уже должен сюда переместиться из предыдущего окна. License Program выбираем Enterprise agreement. Указываем компанию и страну. Next.
Выбираем тип продукта: Windows Server 2019 Remote Desktop Services Per Device client access license. Указываем количество лицензий. Обязательно соглашение Enterprise agreement, или ищем в интернете который подойдет…
Настройка и лицензирование терминального сервера Windows Server 2016
Не стоит выбирать лицензии Per User, иначе потом вы получите такую ошибку:
Next.
Ну вот мы и получили нужные нам клиентские лицензии. Копируем.
Вводим ключ в мастер. Next.
Finish.
Возвращаемся к Remote Desktop Licensing Manager. Сервер активирован. Лицензии получены. Кстати, они начнут тратиться после окончания триального периода.
Роль Remote Desktop Session Host
Входим в Server Manager. Справа вверху выбираем Manage > Add Roles and Features.
Попадаем в раздел Before You Begin.
Это начальная страница, пропускаем. Next.
Попадаем в раздел Installation Type. Выбираем Role-based or feature-based installation. Next.
Попадаем в раздел Server Selection. Выбираем текущий сервер. Next.
Попадаем в раздел Server Roles. Выделяем галкой роль Remote Desktop Session Host.
Нам предлагают установить дополнительные фичи, соглашаемся. Add Features.
Роль Remote Desktop Session Host выделена. Next.
Попадаем в раздел Features, ничего не выделяем. Next.
Попадаем в раздел Confirmation. Ставим галку Restart the destination server automatically if required. Отображается предупреждение, что сервер может быть перезагружен. Yes.
Install.
Начинается процесс установки роли.
Сервер перезагружается.
В процессе устанавливаются компоненты.
После перезагрузки автоматически продолжается установка роли. Триальный период работы терминального сервера — 119 дней.
Роль Remote Desktop Session Host успешно установлена. Close.
Открываем Windows Administrative Tools.
Переходим в папку Remote Desktop Services.
Запускаем оснастку Remote Desktop Licensing Diagnoser.
Видим ошибку.
The licensing mode for Remote Desktop Session Host server is not configured.
Выполняем gpedit.msc.
gpedit.msc
Откроется Local Group Policy Editor.
Раскрываем Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Licensing.
Редактируем Use the specified Remote Desktop license servers.
Включаем — Enabled. В поле «License server to use» прописываем сервер, с которого получать лицензии, в моём случае «localhost». OK.
Редактируем Set the Remote Desktop licensing mode.
Включаем — Enabled. В поле «Specify the licensing mode for the RD Session Host server» устанавливаем значение Per Device. OK.
Снова запускаем оснастку Remote Desktop Licensing Diagnoser. Теперь всё зелёное, ошибок нет.
Практические испытания
Поскольку мы с вами системные администраторы 99 уровня, то нам нужно провести практические испытания терминального сервера.
На терминальном сервере создаём трёх локальных пользователей: user1, user2, user3.
Включаем их в группу Remote Desktop Users.
Коннектимся под этими пользователями к терминальному серверу по RDP.
Есть три активных сеанса.
Заключение
Мы с вами успешно создали терминальный сервер Windows Server 2019 в рабочей группе WORKGROUP без домена. 120 дней терминальный сервер будет работать в триальном режиме, затем начнёт использовать лицензии Per Device. Для подключения к терминальному серверу требуется создать локальную учётную запись и включить её в группу Remote Desktop Users.
Если нужно создать удаленное подключение для нескольких пользователей, то сперва необходимо настроить терминальный сервер на Windows Server. Он позволит предоставлять ровно такое количество мощностей, которое требуется для решения конкретной задачи – например, для работы с 1С или CRM.
Настройка в версиях Windows Server 2012, 2016, 2019 выполняется по одному алгоритму.
Базовая настройка терминального сервера
Сначала проверим имя рабочей группы и описание компьютера.
- Открываем «Панель управления», переходим в раздел «Система».
- Нажимаем «Изменить параметры».
- На вкладке «Имя компьютера» смотрим, как он идентифицируется в сети. Если имя компьютера или рабочей группы слишком сложное, нажимаем «Изменить» и задаем другие идентификаторы. Для применения нужно перезагрузить систему.
После проверки имени смотрим и при необходимости меняем сетевые настройки. В «Панели управления» открываем раздел «Сетевые подключения».
Переходим в свойства используемого подключения, открываем свойства «IP версии 4». Указываем настройки своей сети. IP, маска и шлюз должны быть статичными.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Добавление ролей и компонентов
Открываем меню «Пуск» и запускаем «Диспетчер серверов». Далее:
- Нажимаем «Добавить роли и компоненты».
- Выбираем пункт «Установка ролей или компонентов».
- Выбираем сервер из пула серверов.
- В разделе «Роли сервера» отмечаем DHCP-сервер, DNS-сервер, доменные службы Active Directory, службы удаленных рабочих столов.
- В разделе «Службы ролей» отмечаем лицензирование удаленных рабочих столов, узел сеансов удаленных рабочих столов и шлюз удаленных рабочих столов.
- Нажимаем «Далее» до раздела «Подтверждение». Здесь нажимаем «Установить».
После завершения установки выбираем повышение роли этого сервера до уровня контроллера доменов.
Настройка конфигурации развертывания
Теперь нужно настроить корневой домен:
- В мастере настройки доменных служб Active Directory выбираем операцию добавления нового леса и указываем имя корневого домена. Оно может быть любым.
- В разделе «Параметры контроллера» придумываем и подтверждаем пароль.
- Проходим до раздела «Дополнительные параметры». Указываем имя NetBIOS, если его там нет.
- Проходим до раздела «Проверка предварительных требований». Если проверка готовности пройдена, нажимаем «Установить». Если нет, устраняем недостатки.
После завершения установки необходимо перезагрузиться.
Настройка зоны обратного просмотра
В «Диспетчере серверов» раскрываем список средств и выбираем DNS. Далее:
- Нажимаем «Зона обратного просмотра» – «Создать новую зону».
- Выделяем пункт «Основная зона».
- Выбираем режим «Для всех DNS-серверов, работающих на контроллере домена в этом домене».
- Выбираем зону обратного просмотра IPv4.
- Указываем идентификатор сети – часть IP адресов, которые принадлежат этой зоне.
- Нажимаем «Готово» для применения конфигурации.
Проверить, что все установилось, можно в «Диспетчере DNS».
Настройка DHCP
Возвращаемся в «Диспетчер серверов». Здесь нужно завершить настройку DHCP.
- Указываем данные для авторизации.
- Проверяем сводку и нажимаем «Закрыть».
- После завершения установки снова открываем «Диспетчер серверов» – «Средства» – DHCP.
- В окне DHCP проходим по пути «Имя сервера» – «IPv4» – «Создать область».
- Задаем любое имя DHCP.
- Указываем начальный и конечный IP-адреса для интервала, который будет раздавать сервер.
- Выбираем настройку этих параметров сейчас.
- В окне DHCP переходим по пути «Имя сервера» – «Область» – «Пул адресов». Проверяем, что в списке указан тот диапазон IP-адресов, который мы задали в настройках.
Установка служб удаленных рабочих столов
После настройки DHCP снова открываем «Диспетчер серверов».
- Нажимаем «Управление» – «Добавить роли и компоненты».
- Выбираем установку служб удаленных рабочих столов.
- В разделе «Тип развертывания» выбираем «Быстрый запуск».
- В разделе «Сценарий развертывания» выбираем развертывание рабочих столов на основе сеансов.
- Отмечаем пункт «Автоматически перезапускать конечный сервер, если это потребуется» и нажимаем «Развернуть».
Настройка лицензирования удаленных рабочих столов Windows
Чтобы сервер работал корректно, нужно настроить службу лицензирования.
- Открываем «Диспетчер серверов».
- Переходим по пути «Средства» – «Remote Desktop Services» – «Диспетчер лицензирования удаленных рабочих столов».
- Выбираем в списке сервер, кликаем по нему правой кнопкой и нажимаем «Активировать сервер».
- Нажимаем «Далее» несколько раз, снимаем отметку «Запустить мастер установки лицензий» и затем – «Готово».
- Снова открываем «Диспетчер серверов».
- Переходим в «Службы удаленных рабочих столов».
- В обзоре развертывания нажимаем на меню «Задачи» и выбираем «Изменить свойства развертывания».
- Переходим в раздел «Лицензирование».
- Выбираем тип лицензии.
- Прописываем имя сервера лицензирования – в данном случае это локальный сервер localhost. Нажимаем «Добавить».
- Нажимаем «ОК», чтобы применить настройки.
Добавление лицензий
Осталось добавить лицензии.
- Открываем «Диспетчер серверов».
- Переходим по пути «Средства» – «Remote Desktop Services» – «Диспетчер лицензирования удаленных рабочих столов».
- Кликаем по серверу правой кнопкой и выбираем пункт «Установить лицензии».
- В мастере установки лицензий выбираем программу, по которой были куплены лицензии.
- Указываем номер соглашения и данные лицензии.
- Применяем изменения.
Чтобы проверить статус лицензирования, открываем «Средства» – «Remote Desktop Services» – «Средство диагностики лицензирования удаленных рабочих столов».
На этом настройка терминального сервера на Windows Server завершена. Теперь к серверу могут подключаться удаленные пользователи для выполнения разных задач.
В данной инструкции у нас уже установлена операционная система Windows Server 2019 на виртуальной машине.
Минимальные требования:
- 64-разрядный процессор с тактовой частотой 1,4 ГГц;
- ОЗУ 512 МБ (2 ГБ для варианта установки «Сервер с рабочим столом»);
- диск 32 ГБ;
- доступ к интернету.
Бесплатный сервер 1С для подписчиков нашего telegram-канала !
Для того чтобы подключить сертификат с помощью Let’s Encrypt требуется прямые пробросы портов TCP 443, 80 до машины, а также доменное имя, на которое будет вешаться сертификат.
Активация Windows Server 2019 проходит тоже на этом этапе.
Установка ролей на Windows Server 2019
После подготовки Windows Server 2019, мы приступаем к установке ролей для настройки терминального сервера и шлюза удаленных рабочих столов.
Заходим в Диспетчер серверов — Управление — Добавить роли и компоненты.
Открывается “Мастер добавления ролей и компонентов”:
Рисунок 1 — Мастер добавления ролей и компонентов
Добавление ролей на сервере:
- Тип установки — Установка ролей или компонентов.
- Выбор сервера — Выбираем наш текущий сервер.
- Роли сервера — Службы удаленных рабочих столов.
- Службы ролей — Лицензирование удаленных рабочих столов, шлюз удаленных.
Подтверждаем установку компонентов и проводим установку. После установки всех нужных нам ролей — перезагружаем сервер.
У нас вы можете взять готовый терминальный сервер 1С в аренду.
Настройка сервера лицензирования
Заходим в Диспетчер серверов — Средства — Remote Desktop Services — Диспетчер лицензирования удаленных рабочих столов.
В диспетчере нажимаем ПКМ на наш сервер и выбираем “Активировать сервер”.
Попадаем в “Мастер активации сервера”, вводим свои данные и нажимаем “Далее”.
Рисунок 2 — Мастер активации сервера
В следующем пункте вводим “Сведения об организации” и нажимаем “Далее”.
Завершение работы мастера активации сервера выполняется с поставленной галочкой “Запустить мастер установки лицензий” чтобы попасть в оснастку установки лицензий.
Рисунок 3 — Завершение работы мастера активации сервера
В мастере установки лицензий мы видим параметры сервера лицензирования и нажимаем “Далее”.
В следующем окне мы выбираем лицензию в зависимости от приобретенной вами лицензии.
Имеется несколько типов лицензии:
- Пакет лицензий (в розницу).
- Соглашение “Open License”.
- Соглашение “Select License”.
- Соглашение “Enterprise Agreement”.
- Соглашение “Campus Agreement”.
- Соглашение “School Agreement”.
- Лицензионное соглашение постановщика услуг.
- Другое соглашение.
- Лицензия Select Plus.
В нашем случае мы выбираем “Соглашение “Enterprise Agreement”” и нажимаем “Далее”.
- Версию продукта ставим “Windows Server 2019”.
- Тип лицензии “Клиентская лицензия служб удаленных рабочих столов “на устройство”.
- Количество в зависимости от приобретенной вами. В нашем случае мы активируем на 10 устройств.
Завершаем работу мастера установки лицензий.
Для завершение установки лицензий осталось выполнить пункт по добавление групповых политик, для этого нажимаем ПКМ по меню “Пуск” и выбираем “Выполнить”.
В окне “Выполнить” вводим gpedit.msc и нажимаем “ОК”.
Попадаем в “Редактор локальной групповой политики”
В данной настройке требуется править две записи. Для того чтобы указать сервер лицензирования мы переходим в пункт:
Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Служба удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Лицензирование — Использовать указанные серверы лицензирования удаленных рабочих столов.
Включаем данную политику и вводим требуемый сервер лицензирования. В нашем случае мы будем ссылаться на свой локальный сервер “localhost” и применяем настройку.
Рисунок 4 — Использование серверов лицензирования
Для второго пункта мы переходи по следующему пути:
Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Служба удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Лицензирование — Задать режим лицензирования удаленных рабочих столов.
Включаем политику и указываем режим лицензирования, в нашем случае мы активируем “на устройство” и применяем настройку.
Рисунок 5 — Задаем режим лицензирования
Настройка по установки лицензий прошла успешно, далее мы настраиваем шлюз удаленных рабочих столов.
Настройка шлюза удаленных рабочих столов
Шлюз удаленных рабочих столов является сервисом посредником между клиентами из внешней сети и сеансов внутренней сети, обеспечивает безопасный обмен данными между ними.
Заходим в Диспетчер серверов — Средства — Remote Desktop Services — Диспетчер шлюза удаленных рабочих столов.
Нажимаем ПКМ по папке “Политики” и выбираем “Создание новых политик авторизации”.
Мы попадаем в “Мастер создания новых политик авторизации”.
Рисунок 6 — Создание политик авторизации для шлюза удаленных рабочих столов
По пунктам выбираем следующее:
- Политики авторизации — Создать политику авторизации подключений к удаленным рабочим столам и авторизации ресурсов удаленных рабочих столов.
- Политика авторизации подключений — пишем наименование политики (в нашем случае Users).
- Требования — выбираем членство в группе для пользователей или компьютеров, которые смогут подключаться к серверу (в нашем случае, мы добавили группу пользователей “Пользователи удаленного рабочего стола” и “Администраторы”).
- Перенаправление устройств — выбираем, что требуется перенаправить (мы выбрали “Включить перенаправление устройств для всех клиентских устройств”).
- Время ожидания сеанса — по умолчанию.
- Сводка по политике авторизации подключений к RD — параметры которые будут созданы в данной политике.
- Политика авторизации ресурсов — пишем наименование политики (в нашем случае TS).
- Группы пользователей — выбираем членство в группе для пользователей или компьютеров, которые смогут подключаться к серверу (в нашем случае, мы добавили группу пользователей “Пользователи удаленного рабочего стола” и “Администраторы”).
- Сетевой ресурс — можем настроить группу терминальных серверов, куда можно подключиться, выберем “Разрешить подключение пользователей к любому ресурсу (компьютеру)”.
- Разрешенные порты — если настроен нестандартный порт, то в этом пункте можно это указать, выбираем “Разрешить подключение только к порту 3389”.
- Сводка по политике авторизации ресурсов RD — параметры которые будут созданы в данной политике.
На данном этапе мы завершили настройку шлюза удаленных рабочих столов, за исключением установки сертификата.
Рисунок 7 — Оснастка диспетчера шлюза удаленных рабочих столов без сертификата
Для того, чтобы установить сертификат на шлюз удаленных рабочих столов, мы воспользуемся утилитой win-acme.
Установка сертификата на шлюз удаленных рабочих столов через Let’s Encrypt
Скачиваем программу по ссылке:
https://github.com/win-acme/win-acme/releases/download/v2.1.14.1/win-acme.v2.1.14.996.x64.trimmed.zip
Копируем в папку C:\Scripts\win-acme
Создаем 3 bat-файла:
- Файл «C:\Scripts\win-acme\Register.bat»
Файл «C:\Scripts\win-acme\Register.bat»
@echo off rem powershell.exe :: Ввод данных: set /p commonname_Data="Enter Domain name(exampe : v0162.esit.info) : " powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Get-WebBinding | Remove-WebBinding" powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "New-WebBinding -Name 'Default Web Site' -Port 443 -Protocol https -SslFlags 0 -IPAddress "*" -HostHeader "*" " powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "New-WebBinding -Name 'Default Web Site' -Port 80 -Protocol http -IPAddress "*" -HostHeader "*" " powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Set-WebBinding -Name 'Default Web Site' -BindingInformation "*:443:*" -PropertyName HostHeader -Value '%commonname_Data%'" powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Set-WebBinding -Name 'Default Web Site' -BindingInformation "*:80:*" -PropertyName HostHeader -Value '%commonname_Data%'" @echo on "C:\Scripts\win-acme\wacs.exe" --installation script --target iissite --siteid 1 --commonname %commonname_Data% --emailaddress admin@admin --accepttos --script "./scripts/PSScript.bat" --scriptparameters "./scripts/ImportRDGateway.ps1 {5}"
- Файл «C:\Scripts\win-acme\Scripts\PSScript.bat»
Листинг:
powershell.exe -ExecutionPolicy RemoteSigned -File %*
- После этого запускаем «C:\Scripts\win-acme\Register.bat».
- Вводим домен на котором находится наш шлюз удаленных рабочих столов.
- Если всё получилось, то в оснастке шлюза удаленных рабочих столов должен появится созданный сертификат, а в консоли — готовый результат.
- Элемент маркированного списка
Рисунок 8 — Сертификат успешно установлен
Подключение пользователей
Следующем этапом мы создаем пользователей для подключение к удаленному рабочему столу через шлюз удаленных рабочих столов.
- В окне “Выполнить” вводим команду “control userpasswords2”.
- Нажимаем “Дополнительно”.
- Выбираем папку “Пользователи” переходим в “Дополнительные действия” и нажимаем “Новый пользователь”.
- Вводим требуемые поля.
Рисунок 9 — Добавление нового пользователя
Создаем нового пользователя и добавляем его в группу “Пользователи удаленного рабочего стола”, для этого заходим в Панель управления — Система — Настройка удаленного рабочего стола — Выбрать пользователей — Добавить.
Добавляем созданных пользователей, после чего подключаемся к серверу.
Подключение к серверу терминалов
На машине, с которой будем подключаться к серверу, ищем утилиту “Подключение к удаленному рабочему столу” на Windows 10 она находится по следующему расположению: Пуск — Стандартные — Windows — Подключение к удаленному рабочему столу.
В открытом окне вводим имя нашего сервера или локальный ip-адрес. В нашему случае имя сервера “EFSOL-TS”
Пользователя указываем, которого создали (EFSOL-TS\efsol_it).
Далее, чтобы указать адрес шлюза удаленных рабочих столов, переходим во вкладку “Дополнительно” нажимаем “Параметры” вводим в окне Имя сервера наше доменное — “gorbach.esit.info”.
Рисунок 10 — Подключение к шлюзу удаленных рабочих столов
Нажимаем “ОК” и “Подключить”.
При подключении к удаленному рабочему столу — может появится сообщение о сертификате, мы на него соглашаемся.
Установка терминального сервера произведена и шлюз удаленных рабочих столов успешно настроен.
Также мы готовы предложить готовый терминальный сервер в аренду. Конфигурации подобраны для комфортной работы в 1С, офисных приложениях и другом ПО.
Posted by
on December 20, 2018
By default in Windows Server 2019 remote desktop is disabled. This post will cover how to turn on and enable Remote Desktop Protocol (RDP) in Windows Server 2019, using either PowerShell or the GUI.
Note: In Windows Server 2019 Essentials edition, remote desktop is already enabled by default so you will not need to manually do this.
Remote desktop can be enabled through the graphical user interface (GUI) with the following easy steps.
Allowing Remote Desktop With The GUI
- Open Server Manager. This can be found by opening the start menu, as shown below.
If Server Manager does not show here, simply type “Server Manager” into the start menu to search for it. By default Server Manager will open when you log in to the GUI, otherwise you can select it from the task bar.
- Within the Server Manager window, select Local Server from the left hand side. You may need to wait a little for it to detect the current state of your system. You should see that Remote Desktop is listed as Disabled as shown below.
- Click on the Disabled text which will open the System Properties window in the Remote tab.
- From the System Properties window, select “Allow remote connections to this Computer” as shown below.
Tip: You can also open the System Properties window shown above by entering “SystemPropertiesRemote” into a Command Prompt or PowerShell terminal.
- Once you select “Allow remote connections to this computer” the below warning message will appear, advising that this will create the required firewall rules in Windows firewall to allow remote desktop traffic in from any source address, select OK to proceed.
- At this point you can optionally click the “Select Users…” button to define specific users or groups that have permission to connect via remote desktop. Select the OK button to close out of the System Properties window and enable remote desktop.
- Back in Server Manager, Remote Desktop may still show as Disabled until you refresh the view. After clicking the refresh button as highlighted below (or pressing F5 on the keyboard), the status should update to Enabled.
That’s it, remote desktop should now be ready to use!
Allowing Remote Desktop With PowerShell
While there isn’t currently an explicit PowerShell cmdlet used for enabling remote desktop, we can use the Set-ItemPropery cmdlet to modify the registry value that enables or disables Remote Desktop:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0
Once complete we can use the ‘Enable-NetFirewallRule’ to configure Windows Firewall to allow remote desktop connections in:
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Remote Desktop should now be accessible in Windows Server 2019.
By default this will allow all connections in, the same as if we had just enabled it using the GUI steps shown above. It is highly recommended that you configure more specific firewall rules where possible to only allow inbound traffic from known hosts.
Summary
By default Windows Server 2019 sets external remote desktop access to disabled as a security measure, we can easily optionally enable it from within the server console or via PowerShell to allow everyone or a specific set of users or groups.
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 ENU\x64\sqlncli.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 Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn”.
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 Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA
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-WORXX\username 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