Эта большая инструкция посвящена особенностям установки, настройки и эксплуатации фермы терминальных серверов на базе роли 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.
Далее нужно указать, как вы хотите распределить роли RDS по вашим серверам. В мастере построения фермы RDS нужно выбрать сервера для соответствующих ролей. В моем случае я хочу построить такую конфигурацию:
- RD Connection Broker –
msk-rdsman
- RD Web Access —
msk-rdsman
- RD Session hosts —
msk-rdsman, msk-rds1, msk-rds2
Поставьте галку 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-fs01\mskrds_upd
), в котором будут хранится профили пользователей в форматер UPD виртуальных дисков (в этом случае при входе на любой сервер коллекции RDS, пользователь будет всегда загружать свой профиль) и максимальный размер диска (20 Гб по умолчанию);Подробнее о User Profile Disks в Windows Server RDS рассказано в этой статье. - Нажмите 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 в сетевом каталоге и увеличить скорость загрузки профиля (не забывайте, что он загружается по сети из сетевой папки при входе пользователя).
Resize-VHD
, используемый для изменения размеров виртуальных VHDX дисков Hyper-V.В секции HOST SERVERS коллекции RDS можно перевести любой сервер фермы в режим обслуживания RDSH (Drain Mode). Для этого щелкните по нему и выберите Do not allow new connection. В результате Connection Broker не будет отправлять новые подключения пользователей на этот сервер. В таком режиме вы можете спокойно установить обновления Windows или обновлять на сервере приложения, не затрагивая пользователей.
Здесь же можно добавить/удалить RDS Host из коллекции.
Публикация RemoteApp в Remote Desktop Services
RemoteApps – это опубликованные для пользователей приложения на RDS серверах. Благодаря RemoteApp можно использовать приложения, установленные на терминальном RDSH сервере так, как будто оно запущено непосредственно на компьютере пользователя. Пользователь не видит всего рабочего стола Windows Server RDS и работает только с теми программами, которые опубликовал для него администратор. На компьютере пользователя будет отображаться только окно запущенной на RDS программы.
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:\Windows\RemotePackages\CPubFarms\rds-Msk-Managers\CPubRemoteApps
Замените иконку приложения другим ico файлом.
Теперь пользователь может запустить RemoteApp приложение из RD Web Access (
https://msk-rdsman.wintpro.ru/RDWeb
) или с помощью специального RDP файла.
Для запуска опубликованного приложения RemoteApp, нужно добавить в RDP файл такие строки:
remoteapplicationmode:i:1 remoteapplicationname:s:putty remoteapplicationprogram:s:"C:\Tools\putty.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:\ps\RDSCert.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 =@("WINITPRO\msk-developers","WINITPRO\msk_devops")
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup $UserGroup
Опубликовать приложение RemoteAPP:
New-RDRemoteapp -Alias GoogleChrome -DisplayName GoogleChrome -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ShowInWebAccess 1 -CollectionName $CollectionName -ConnectionBroker $RDSCB
В статье мы рассмотрели, как установить и настроить ферму Remote Desktop Services на базе Windows Server 2019/2022 с помощью графического интерфейса Server Manager и с помощью PowerShell. За рамками статьи осталось более подробное описание ролей RD Web Access и RD Gateway. Мы рассмотрим настройку этих ролей отдельно в следующих статьях.
Статья как обычно бомба. Спасибо.
Косметика:
Предварительные требования, которые нужно выполнить перед созданием RDS фермы:
Установите одинаковую версию Windows Server на все сервера, настроить их, и добавить из в один домен AD;
Наверное имелось ввиду «их«
Для запуска опубликованного приложения RemoteApp, нужно добавить в RDP файл такие строки:
remoteapplicationmode:i:1
remoteapplicationname:s:putty
remoteapplicationprogram:s:"C:\Tools\putty.exe"
disableremoteappcapscheck:i:1
alternate shell:s:rdpinit.exe
Где лежит и как называется файл?
+
Спасибо, хотелось бы статейки например полезные политики для терминальных серверов или кастомизация штатного event viewer/других утилит для логирование инфраструктуры AD(кто заходил откуда, какой файл использовал и тд)
Это тот файл, который вы будете распространять по клиентам для подключения к ферме. Его расположение и имя зависят только от вас.
Без RD Web Access система работать будет?
Ведь задача RD Web Access только в распространении rdp файла
1. RD Web Access — это еще одна потенциальная дверь в стене безопасности
2. Сертификаты и rdp файлы можно предоставлять и по другим каналам.
3. RD Web Access — поедает дополнительные ресурсы
Если RD Web Access особо не нужен, как его безопасно отключить?
В RDS Standart Deployment развернуть систему без RDWeb не получится.
Другой вопрос в том, что теоретически вы можете просто закрыть к нему доступ на windows firewall.
Если нужна только роль RDSH можно сделать стендалон хост https://winitpro.ru/index.php/2021/06/17/ustanovka-standalone-rdsh-windows-server-workgroup/
Коллеги кто-то сталкивался с таким?, уже и коллекцию пересоздавал и группу новую сделал для коллекции….
Не запускается приложение через remoteaapp
При запуске приложения через remoteapp зависает заставка на: Подготовка Windows
Другие коллекции на том же сервере посредника подключений работают нормально
Сам сервер доступен по rdp,само приложение нормально функционирует на сервере(По журналу Microsoft-Windows-RemoteApp and Desktop Connections/Operational ошибок никаких обнаружено не было
Сервер достаточно новый, но ни одно приложение которое я бы не опубликовал в remoteapp на данном сервере не запускается дальше надписи Подготовка Windows
Из ролей установлено только RDSH
А вы работали c FsLogix?
Нет, но спасибо за идею.
Попробую в ближайшее время развернуть и описать свой опыт в статье
Статья про FSLogix, как обещал 🙂
https://winitpro.ru/index.php/2022/04/21/peremeshhaemye-profily-fslogix-windows-server-rds/
Всем привет. Столкнулся с проблемой.
Ранее rds был настроен через проброс на kerio control на 443й порт по умолчанию, но нужно было разместить 2й сайт.
Включил обратный прокси, настроил записи, новый сайт и RDWA открылся, залогинелся, скачал файлик для подключения и всё, далее не могу подключиться. В логах это:
Пользователь «Имя пользака» на клиентском компьютере «192.168.100.1 — (это шлюз с керио)» не соответствует требованиям политики авторизации подключений и не авторизован для доступа к серверу шлюза удаленных рабочих столов. Была предпринята попытка проверки подлинности по способу «NTLM» с протоколом подключения «HTTP». Произошла следующая ошибка: «23003».
По моему вопросу есть решения? ((
Жмём Win+R (Он же выполнить) пишем nps.msc
Переходим на вкладку «Радиус клиенты и серверы» Открываем
В ней будет Группы внешних RADIUS серверов
Выбираем вашу группу у меня это «TS GATEWAY SERVER GROUP»
В ней должен быть радиус сервер (внешний)
Преходим в его настройки
В конце будет вкладка балансировки нагрузки
Там меняем
Число секунд без ответа 120
Число запросов между интервалами 300
Наслаждаемся
А как вы подчищаете UPD когда они заполняются хламом?
К примеру я очищаю AppData\Local\Temp но там не настолько много кеша ,а профиль пользователя все равно забит через wiztree показывает что много место занимает AppData\Local\Packages.но эту папку трогать опасаюсь
Если ли у вас реализация очистки профиля пользователей от всякого мусора скриптом или иными способами?
Есть
Сделай батник и размести в шаре.
Содержимое батника
pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1
Далее заходим в ГП Конфигурация пользователя\Политики\Конфигурация Windows\Сценарии\Выход из системы
укажи путь к созданному файлу.
При каждом выходе из системы пупка Темр будет очищаться
Здравствуйте!
Такая ситуация. Есть две фермы, в разных/одном доменах. Можно ли объединить их в один сайт. Чтоб пользователь заходил на один сайт и там уже его перенаправляло на определенную ферму? Задача создать единую точку входа для разных терминальных ферм.
По какому критерию должно идти перенаправление на конкретную ферму? Тут может просто сделать пользователю два *.rdp ярлыка на разные фермы?
Я думал что это будет выглядеть так. К примеру на одной ферме 2 приложения: Консультант, 1С. На второй: калькулятор, Paint. На одну ферму опубликовать нельзя, т.к. у всех свои вычислительные мощности и все жадные. Пользователь же зайдя по какому-то адресу видит все приложения в идеале чтоб было типа папок «ферма1» и «ферма» и уже проваливаясь в каждую папку там видел опубликованные приложения и выбирая какое-то скачивал ярлык и в итоге попадал на нужную ферму. Если будет список из всех приложений не критично. Пользователю по большому счету не важно что они на разных фермах. Как подключить на ПК эти RemoteApp я почти разобрался. Через скрипт и файл wcx пока удалось подключить 2 источника, но тоже пока не идеально. Ну и хочется знать вообще можно такое реализовать или нет. Или проще мозги не ломать и сделать просто сайт и там ссылки ввиде _https://farm1, farm2/rdweb/feed/webfeed.aspx и по SSO пускать пользователей.
А можно ли на одном Broker создать несколько ферм? Если да, то как будут пользователи попадать на RDWeb именно своей фермы?
сделать разные коллекции и соответственно для каждой их коллекции своя группа пользователей
А что если определенные пользователи имеют доступ на все коллекции?
Есть
Сделай батник и размести в шаре.
Содержимое батника
pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %WinDir%\TEMP && rd /s /q . > nul 2>&1
Далее заходим в ГП Конфигурация пользователя\Политики\Конфигурация Windows\Сценарии\Выход из системы
укажи путь к созданному файлу.
При каждом выходе из системы пупка Темр будет очищаться
У меня ферма на Win server 2019. Могу я добавить RDSH Win Server 2022 к существующей ферме?
Я сам не пробовал такую конфигурациию, но думаю скорее всего получится добавить Win 2022 в коллекцию с 2019. Хотя обычно это и не рекомендуется
Да у меня уже просто руки опустились не знаю, что делать. На Win server 2019 RDSH зависают если установить обновы свежие. Если удалить все обновления и оставить только декабрьские, то сервера работают месяцами, стоит обновить, проработают пол дня, максимум 2 и зависают(
Тут сложно сказать в чем причина. Может быть что-то с железом связано или програмным окружением. У нас по карйней мере такого пока не было. Смотрите, что грузит систему, анализируйте
Ребята, подскажите куда копать.
Собрал ферму из двух TMS 2022 (на данных серверах поднял все роли).
После подключения свыше 250 пользователей выскакивает ошибка:
Пул серверов не соответствует находящимся в нем посредникам подключений к удаленному рабочему столу. Ошибки: Не удается подключиться ни к одному из указанных серверов посредников подключений к удаленному рабочему столу. Служба управления удалёнными рабочими столами(rdms)посредник подключения (tssdis) служба подключения к удаленным рабочим столам и приложениям RemoteAPP (tscpubrpc).
Вся соль в том что люди подключаются работают а сервер весь красный.
а сколько всего терминалов в коллекции? подозреваю что есть определенное рекомендуемое число пользователей на терминале, даже если ресурсов в запасе
Ферма из 2 серверов Коллекция одна (1с).
Есть догадки что мелкий стали ограничивать подключения на сервер. на 2012 ферме ( тоже два сервера работает на ура свыше 700 подключений ) а тут нет.
Добрый день. у опубликованных приложений есть параметр псевдоним (Alias). как его можно изменить?
Set-RDRemoteApp -CollectionName "coll1" -Alias "coll2_new"
Добрый день! Прошу помощи) Используется: 2 RDCB (на одном sql server 2019, для обеспечения HA) 2 RDSH. RDCB также выполняют роль RDSH. Все на Win server 2022. Существует две коллекции (RDSH-02, группа КБ и все остальные, группа Офис). При попытке подключение от пользователя из группы КБ, его направляет в коллекцию группы Офис и подключение отбивается за неимением прав на подключение коллекции у группы КБ. Был бы очень благодарен за помощь!
Решено. Не прописал инф. о балансировке нагрузки в клиенты.
А каким образом определённым людям использовать рабочие столы? Если в коллекции не опубликовано ни одного приложения, то в веб морде есть запуск рабочего стола, кинет рандомно на любой rdsh. Если же опубликовать хоть одно приложение, то рабочий стол пропадает. Хотел создать отдельную коллекцию для этих пользователей и не публиковать там ничего, чтобы был рабочий стол, однако при создании нельзя выбрать те же rdsh сервера, которые уже выбраны в другой коллекции. Сейчас мы используем старенький Citrix XenApp и там таких ограничений нет… Есть решение этой задачи? Нужно чтобы ярлык был доступен именно из веб морды, как приложения.
Чтобы вернуть ярлык Remote Desktop взад:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\{collection-name}\RemoteDesktops\{collection-name}
Изменить параметр ShowInPortal на 1
Ну и в поле Name вместо QuickSessionCollection указать что то типа Remote Desktop
Добрый день
WIN SERVER 2022
После настройки фермы, сервер который выполняет роли «msk-rdsman.winitpro.ru – RDSH, RDWA, RDCB» — в «средствах диагностики лицензирования удаленных рабочих столов» не видит сервер лицензий, который находиться на другом сервере. Рабочие два сервера RDSH сервер лицензий видят и получают с него лицензии. Почему так? Все серверы настраивались идентично, все порты открыты.
Сервер лицензий может быть на сервере отдельно от сервера(посредника и веба)? Если да то как его правильно прописать ??
1) Да, RDS licensing можно поставить на любом хосте, не обязательно в ферме RDS
2) Прописать сервер лицензирования можно через настройки RDS deployment или через GPO — как вам удобнее. Все описано здесь: https://winitpro.ru/index.php/2017/11/21/ustanovka-i-aktivaciya-rds-license-na-windows-server-2016/
Здравствуйте, подскажите, может кто сталкивался, проблема следующая:
Развернул ферму из 3х серверов для публикации приложений remoteapp в частности 1с, указал путь для создания UPD файлов, права доступа предоставил,
шаблон UVHD-template.vhdx создался, но при использовании опубликованной 1с, UPD профиль не создаётся. А если авторизоваться на сервере с полноценной RDP сессией то все корректно
отрабатывает. Создаётся ощущение что данный функционал не предназначен для remoteapp.
Вопрос не актуален, оказывается профиль создаётся только после того как пользователь сохранит какие либо настройки.
Имеется следующий момент. Недавно подняли RDS Ферму: — 01C2.domain.name c ролями: — Посредник подключений к удалённому рабочему столу; — Узел сеансов удалённых рабочих столов; — Лицензирование удалённых рабочих столов; — Веб-доступ к удалённым рабочим столам; — TSR.domain.name c ролью: — Узел сеансов удалённых рабочих столов; До разворачавания фермы, у нас использовалось два отдельных терминальных сервера: один на базе 2008 R2; другой — на 2022. Когда появлялась необходимость в замене принтера, заходила под админской доменной учёткой на каждый из серверов и прописывали туда принтер по принципу: Открыть оснастку «Устройства и принтеры» > Добавить принтер > Необходимый принтер отсутствует в списке > Добавить локальный или сетевой принтер с параметрами, заданными вручную > Создать новый порт и указывали расшаренный принтер в UNC-формате. Такой подход настройки принтеров на нашей фирме как устоявшая модель: работает без нареканий. За варианты с перенаправлением принтера и ПО ScrewDrivers мы знаем, но не используем. В связи с переездом на модель с фермой терминальных серверов, столкнулись с двумя проблемами: — Мы как администраторы не можем по RDP попасть на конкретный сервер терминалов, ввиду того, что и на нас распространяется балансировка. Можно ли обойти как-то этот момент? — Если нет возможности обойти это и всё-равно балансировка будет отрабатывать на всех пользователей, то есть ли альтернативная возможность установки принтеров на обоих терминальных серверов?
Подключайтесь в консоли нужного сервера командой
mstsc /admin
-> имя нужного RDSH хоста.Здравствуйте! Настроил ферму по этой статье. Скажите пожалуйста: как теперь к ней подключиться через стандартный RDP (не через веб), какой адрес указывать?
Добрый день!
Подскажите, у меня в компании 10 серверов RDS (не спрашивайте зачем)))
Можно ли конкретному пользователю разрешить подключение только на один сервер( чтобы его всегда кидало только на него?) чтобы он не попадал на остальные сервера
Если сервера объединены в единую ферму через RD Connection Broker, думаю что никак.
Можно сделать отдельную RD коллекцию для пользователя из одного сервера, но на этот хост не смогут подключаться другие.
mstsc /admin — позволяет подключиться к конкретному серверу, но для обычного пользователя это вроде не работало, нужны права администратора.
Добрый день, подскажите можно ли как то добавить в коллекцию Remote Desktop Services локальных пользователей самого сервера терминалов?
Сам сервер в домене и при создании коллекции фигурируют только доменные пользователи.
По идее можно добавлять и локальных пользователей (с этого же хоста естественно).
У меня был опыт запуска RDS на сервере в рабочей группы. Насколько я помню, там главная особенность использовать per-device лицензии на сервере лицензирования.
добрый день, спасибо за ответ.
Может дело как раз в том что сервер в домене.
Захожу в созданную коллекцию, там по умолчанию добавлена группа «Пользователи домена».
При выборе «Свойства задачи» -> «Изменить свойства» -> «Группы пользователей» фигурируют только доменные, локальные группы TS не предлагаются (
Там в форме выбора группы обычно можно выбрать источник принципалов. Вместо домена выберите этот компьютер.
Или укажите локальную группу в формате:
rds01\localgroupname
нет нет, там только домен. Сказали что это поведение бай дизайн. Локальную группу на доступ к коллекции (по крайней мере если терминал сервере в домене) можно только из домена.
Есть ли способ настроить RDC Broker, что бы он не балансировал сеанс пользователя, если у этого пользователя уже есть запущенный другой сеанс, а производил подключение на тот же хост?
В настройка коллекции включена опция Enable automatic reconnection?
Добрый день. Интересует как можно настроить RemoteApp, чтобы не скачивался файл rdp на ПК пользователя, а сразу открывался? У меня на rds установлен клиент 1С.
В браузере Edge можно настроить политику для автоматического открытия определенных типов файлов при скачивании:
_https://learn.microsoft.com/en-us/DeployEdge/microsoft-edge-policies#autoopenfiletypes
+ в целях безопасности можно настроить параметр AutoOpenAllowedForURLs
Добрый день, создал коллекцию приложений, опубликовал нужные. Через некоторое время появилась необходимость добавить дополнительные приложения. Никак не могу найти редактирование коллекции, для добавления новых приложений. Можно только удалить и создать снова. Подскажите, есть ли возможность редактирования существующей коллекции, для добавления новых приложений?
Список приложений в существующей RDS коллекции можно редактировать. Просто выберите свою коллекцию в консоли Server Manager
В статье есть скрин
Добрый день! Подскажите пожалуйста!
Помимо настроек доступа пользователей в коллекции и в самих приложениях, у меня все работает, когда в настройках удаленного рабочего стола внесена группа «пользователи домена».
Если эту группу убрать, то при запуске приложения не хватит прав, НО при таких настройках так же разрешен, получается, удаленный доступ к серверу, а этого не хотелось бы…
Как оставить возможность подключения к приложением, но при этом закрыть вход на сервер через RDP?
Это стандартное поведение. Встроенные средства не позволяют оставить только RemoteApp и запретить полноценный RDP .
Обычно чтобы RDP вход, приходится делать костыль.Типа автозапуска c:\windows\system32\logoff.exe при входе пользователя.
Можно реализовать через GPO: User Configuration>Policies>Windows Components>Remote Desktop Services>Remote Desktop Session Host>Remote Session Environment>Start a program on connections:
Program:
C:\windows\system32\logoff.exe
Working Dir:
C:\windows\system32
Добрый день.
Имеются сервер rdcb, 1 сервер лицензирования и 3 терминальных сервера ТС1 ТС2 ТС3
Я делаю 3 коллекции.
1 RDCB — TC1 (usergroup1)
2 RDCB — ТС2 (usergroup2)
3 RDCB — ТС3 (usergroup3)
В соединении RDP указываю RDCB.
В результате работает только та коллекция, которую я пропишу в реестре в разделе DefaultTsvUrl.
Если авторизуюсь через группу usergroup2, перенаправит на TC1 и откажет в доступе.
Как нужно настроить ферму, чтобы работали сразу три коллекции с одним rdcb сервером?
По идее конфигурация с тремя коллекциями в каждой из который по 1 сервере RDSH и одним общим брокером на всех будет работать и так. Главное чтобы группы пользователей не пересекались.
Прошу добавить в статью. ПРишлось много времени потратить на поиск решения: «при подключении к ферме серверов необходимо использовать имя фермы…»
в RDP файле должна быть вот такая строка:
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.SalesSessionCollection
SalesSessionCollection заменить на имя своей коллекции.
Так же, что бы не указывать имя коллекции в RDP файле, можно задать коллекцию по умолчанию(на каждом брокере):
HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\ClusterSettings
DefaultTsvUrl RegSZ tsv://MS Terminal Services Plugin.1.SalesSessionCollection
решение нашёл на форуме sysadmins
а для чего это делать? какую проблему это исправляет?
Ферма это хорошо.. А как найти и разлогить нужного пользователя. не бегая по всем серверам ?
откройте нужную коллекцию на rdcb и там будут отображены все активные сессии на всех серверах коллекции
Точно спасибо.. В Server 2008 можно было выделить несколько сеансов и завершить.. начиная с 12 по моему только по одному.. есть решение для этой проблемы ?
Можно поставить классическую консоль tsadmin от 2008R2
https://winitpro.ru/index.php/2016/03/02/zapusk-osnastok-tsadmin-msc-i-tsconfig-msc-v-windows-server-2012-r2/
Подскажите куда копать. Удаленное приложение запускается только если пользователь в группе админ состоит, из под обычного пользователя сеанс сразу закрывается.
Скорее всего пользователь не добавлен в коллекцию доступа. Если отдельностьящий rdsh — в группу remote desktop users или в GPO Allow log on through terminal services.
Это самые простые варианты.
Если не поможет, надо копать глубже
Все роли на одном сервере. Пользователь добавлен в группу remote desktop users политикой разрешено
В коллеции группа пользователей тоже добавлена?
Проверьте еще результирующие RSOP политики для пользователей, может быть там где-то запрет включается. Типа той же «Deny logon through Remote Desktop Services»
Если все нормально, тогда только смотреть логи подключений: https://winitpro.ru/index.php/2018/09/25/analizing-rdp-logs-windows-terminal-rds/
Может там наткнетесь на возможную причину.
ЗЫ. А приложение случайно не требует повышения привелегий через UAC для запуска?
Попробуйте зайти на консоль сервера под пользователем и запустить приложение вручную.
та же ситуация. Под админом домена вхожу — под обычным пользователем выбрасывает сразу после входа
Добрый день. Есть RDS ферма с брокером и серверами доступа Win Server 2019. В качестве приложения опубликована 1С. Пользователям распространяется через GPO (Подключения к удаленным рабочим столам и приложениям RemoteAPP), все права настроены и применяются. Все работает отлично.
Но не дает покоя одна маленькая зараза — при открытии приложения оно несколько раз просто закрывается, хотя сам сеанс продолжает работать на сервере, а у пользователя оно закрывается
1) Т.е. пользователю нужно перезапускать опублкиванное приложение, чтобы увидеть его окно?
2) какое поведение приложение при входе в полоценную RDP сессию и ручном запуске программы. оно перезапускается? запускает может другие exe-шники?
1) Да. Пользователь либо запускает второе приложение и видит 2 (или более) окна, либо перезапускает сессию.
2) При полноценной RDP сессии у пользователя все работает отлично
Подскажите как в приложении remote_app прицепить локальный рабочий стол пользователя?
Чтобы при открытии, приложения например был ярлык внутри на него? А не долгий переход диск C — Пользователи — и .т.д
Если у Вас доменная инфраструктура, то это решается через назначение в групповой политике. Что-то вроде \\tsclient\C\Users\%USERNAME%\Desktop и прикручивать к букве диска, например Y
Но пользователям всегда придется помнить правило, что диск Y это их рабочий стол на локальной машине
Это пользовательская политика, то есть на пользователей через сопастовление дисков?
Да, именно так
Увы не работает такой вариант.