*КУБ — полный комплекс облачных услуг!
Remote Desktop Services — набор ролей Windows Server для публикации полных рабочих столов и приложений (RemoteApp) на серверных хостах (RD Session Host), с балансировкой и переподключением сеансов через RD Connection Broker, веб-порталом RD Web Access, при необходимости внешним шлюзом RD Gateway и отдельной службой RD Licensing (CAL для пользователей/устройств).
Минимальная конфигурация (пример):
Предварительно в AD:
Откройте Server Manager, добавьте в пул все серверы (All Servers → Add Servers):

Запустите мастер: Add Roles and Features → Remote Desktop Services installation → Standard deployment → Session-based deployment.

Назначьте роли серверам (пример ниже: RDCB, RDWA на менеджере, RDSH на всех узлах):

Подтвердите и дождитесь завершения развертывания:
После установки откройте Server Manager → Remote Desktop Services → Overview:

В разделе «Задачи» (Tasks) → «Изменить свойства развертывания» (Edit Deployment Properties) задайте:
Для изолированного сценария (без брокера/веб-сервера, на отдельном хосте) см. вариант Standalone RDSH (работа в рабочей группе).
Перейдите в «Службы удалённого рабочего стола» → «Коллекции» → «Задачи» → «Создать коллекцию сеансов»:

Добавьте хосты RD Session Host в коллекцию:

Укажите группы пользователей (удалите Domain Users, добавьте свои, например RDS-Users) и, при необходимости, включите User Profile Disks. Далее — Create.
Чтобы отредактировать параметры, откройте свойства коллекции (Tasks → Edit Properties):

Здесь же публикуются RemoteApp (приложения) и задаются лимиты сеансов (тайм-ауты активных/разъединённых сессий). О тайм-аутах есть хорошее руководство с иллюстрациями.
Чтобы убрать предупреждение об опасном подключении и включить SSO, назначьте правильные SSL-сертификаты для ролей:
Через PowerShell (пример для единого PFX и брокера $RDSCB):
$RDSCB = "msk-rdsman.contoso.local"
$Path = "C:\certs\rds-cert.pfx"
$Pwd = ConvertTo-SecureString "StrongPfxPassword!" -AsPlainText -Force
Set-RDCertificate -Role RDGateway -ImportPath $Path -Password $Pwd -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDWebAccess -ImportPath $Path -Password $Pwd -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDPublishing -ImportPath $Path -Password $Pwd -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDRedirector -ImportPath $Path -Password $Pwd -ConnectionBroker $RDSCB -Force
Get-RDCertificate
Внешний доступ без VPN безопаснее осуществлять через RD Gateway (развертывается отдельно; есть подробное руководство).
Установите роль Remote Desktop Licensing (можно на брокере), активируйте сервер лицензий и укажите в настройках развертывания адрес этого сервера и режим лицензирования (Per User/Per Device). Параметры задаются в Edit Deployment Properties → RD Licensing.
Полезно помнить об ограничениях: обычный Windows Server без RDS предоставляет только 2 административных RDP-подключения; полноценные сессии пользователей требуют RDS CAL.
Публикуйте приложения в свойствах коллекции (RemoteApp Programs → Publish) или через PowerShell:
New-RDRemoteApp -Alias "Chrome" -DisplayName "Google Chrome" `
-FilePath "C:\Program Files\Google\Chrome\Application\chrome.exe" `
-ShowInWebAccess 1 -CollectionName "General" -ConnectionBroker $RDSCB
Пользователи могут входить через:
Ниже — сокращённый пример: создание коллекции, назначение групп, публикация RemoteApp. (Развёртывание ролей — через графический интерфейс, как указано выше, или с помощью автоматизации в соответствии с вашими стандартами.)
$RDSCB = "msk-rdsman.contoso.local"
$RDSH1 = "msk-rds1.contoso.local"
$RDSH2 = "msk-rds2.contoso.local"
# Коллекция
New-RDSessionCollection `
-CollectionName "General" `
-SessionHost $RDSH1,$RDSH2 `
-ConnectionBroker $RDSCB `
-CollectionDescription "General users"
# Доступ
$Groups = @("CONTOSO\RDS-Users","CONTOSO\ServiceDesk")
Set-RDSessionCollectionConfiguration -CollectionName "General" -UserGroup $Groups
# Публикация приложения
New-RDRemoteApp -Alias "WordPad" -DisplayName "WordPad" `
-FilePath "C:\Program Files\Windows NT\Accessories\wordpad.exe" `
-ShowInWebAccess 1 -CollectionName "General" -ConnectionBroker $RDSCB
Откройте порты в брандмауэре Windows и внешнем ACL провайдера Windows VPS:
Быстрая проверка с клиента:
Test-NetConnection rds.contoso.ru -Port 443 # RDWeb/RDGW
Test-NetConnection rds.contoso.ru -Port 3389 # RDP (якщо публікуєте безпосередньо)
О «зависании»/чёрном экране при UDP-транспорте RDP есть отдельный разбор.
Требуется безопасный внешний доступ. Разверните RD Gateway (HTTPS, политики доступа, сертификат).