
Що таке RDS і які ролі потрібні
Remote Desktop Services — набір ролей Windows Server для публікації повних робочих столів і додатків (RemoteApp) на серверних хостах (RD Session Host), з балансуванням і перепідключенням сеансів через RD Connection Broker, веб-порталом RD Web Access, при необхідності зовнішнім шлюзом RD Gateway і окремою службою RD Licensing (CAL для користувачів/пристроїв).
Мінімальний стенд (приклад):
- 2× RD Session Host (сеансові хости)
- 1× менеджер з ролями RD Connection Broker + RD Web Access + RD Licensing (для пілота ролі можна поєднати на одному сервері)
Попередньо в AD:
- Всі сервери додані в один домен і поміщені в одну OU;
- Створена група (наприклад, rdsh-servers) і додані туди всі RDSH;
- Під мережеві профілі користувачів (опціонально) підготовлено загальний каталог для User Profile Disks (UPD).
Встановлення RDS через Server Manager (Standard deployment)
Відкрийте 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 задайте:
- Сервер ліцензування і режим RDS CAL (Per User або Per Device);
- URL RD Web Access;
- (Пізніше) SSL-сертифікати для RDGW/RDWeb/Publishing/Redirector.
Для ізольованого сценарію (без брокера/веба, на одиночному хості) див. варіант Standalone RDSH (робота в робочій групі).
Створюємо колекцію сеансів і підключаємо користувачів
Перейдіть Remote Desktop Services → Collections → Tasks → Create Session Collection:

Додайте хости RD Session Host до колекції:

Вкажіть групи користувачів (видаліть Domain Users, додайте свої, наприклад RDS-Users) і, якщо потрібно, увімкніть User Profile Disks. Далі — Create.
Щоб редагувати параметри, відкрийте властивості колекції (Tasks → Edit Properties):

Тут же публікуються RemoteApp (додатки) і задаються ліміти сеансів (тайм-аути активних/роз’єднаних сесій). Про тайм-аути є хороший розбір з картинками.
Сертифікати та HTTPS для RDS-ролей (коротко)
Щоб прибрати попередження про небезпечне підключення та увімкнути SSO, призначте коректні SSL-сертифікати для ролей:
- RD Gateway, RD Web Access, RD Publishing, RD Redirector.
Через 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 (розгортається окремо; є докладний гайд).
Ліцензування (RDS CAL)
Встановіть роль Remote Desktop Licensing (можна на брокера), активуйте сервер ліцензій і вкажіть в налаштуваннях розгортання адресу цього сервера і режим ліцензій (Per User/Per Device). Параметри задаються в Edit Deployment Properties → RD Licensing.
Корисно пам’ятати обмеження: звичайний Windows Server без RDS дає тільки 2 адміністративні RDP-підключення; повноцінні сесії користувачів вимагають RDS CAL.
Публікація додатків (RemoteApp) і доступ
Публікуйте додатки у властивостях колекції (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
Користувачі можуть заходити через:
- RD Web Access (веб-портал),
- ярлики .rdp/RemoteApp,
- або безпосередньо на FQDN ферми (якщо налаштований брокер і DNS запис).
Швидке розгортання RDS ферми PowerShell (з нуля)
Нижче — скорочений приклад: створення колекції, призначення груп, публікація RemoteApp. (Розгортання ролей — через GUI, як вище, або автоматизацією за вашим стандартом.)
$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 Firewall і зовнішньому ACL провайдера Windows VPS:
- RD Web: 443/TCP
- RD Gateway: 443/TCP
- RDP до RDSH через брокера: 3389/TCP (+ 3389/UDP для покращеної графіки)
- Міжсерверні з’єднання брокера/SQL — згідно з вашою схемою
Швидкі перевірки з клієнта:
Test-NetConnection rds.contoso.ru -Port 443 # RDWeb/RDGW
Test-NetConnection rds.contoso.ru -Port 3389 # RDP (якщо публікуєте безпосередньо)
Про «зависання»/чорний екран при UDP-транспорті RDP є окремий розбір.
Часті проблеми та швидкі рішення
- Користувач не потрапляє до колекції. Перевірте, чи він у потрібній групі доступу до колекції (а не просто в Domain Users).
- Не видно брокера/помилки перепідключення. Перевірте DNS запис ферми, доступність бази брокера і відповідні порти; для HA у брокера — Always On у SQL.
- Сесії не завершуються/висять. Налаштуйте ліміти (таймаути) для активних/роз’єднаних сесій на вкладці Session колекції.
Потрібен безпечний зовнішній доступ. Розгортайте RD Gateway (HTTPS, політики доступу, сертифікат).