В этой статье описано, как установить и настроить роль терминального сервера Remote Desktop Session Host на отдельностоящем Windows Server 2022/2019 в рабочей группе (без домена Active Directory) и без всех дополнительных ролей (Connection Broker, Remote Desktop Web Access, RDS Gateway).
Возможности отдельного RDS сервера в рабочей группе ограничены по сравнению с функционалом, доступном в домене AD. Вы не сможете масштабировать RDSH до полноценной RDS фермы Windows Server, нельзя создавать отдельные коллекции сессии или публиковать RemoteApp, отсутствует брокер подключений (RD Connection Broker), нельзя использовать User Profile Disks для хранения профилей пользователей, а при проведении операций обслуживания хоста RDP сервис будет полностью недоступен для пользователей.
Установка роли Remote Desktop Services Host в Windows Server
Предполагаем, что вы уже установили сервер с Windows Server (2022, 2019 или 2016) и задали первоначальные настройки (задали сетевые параметры и статический IP адрес, имя сервера (hostname), время/дату/часовой пояс, установили последние обновления и т.д.). Теперь можно установить службу RDS через консоль Server Manager или из PowerShell:
При установке службы RDS через Server Manager нужно выбрать Role-based or feature-based installation -> Server roles -> Remote Desktop Services -> в компонентах RDS выберите службы Remote Desktop Session Host и Remote Desktop Licensing (согласитесь с установкой компонентов RSAT для управления ролями).
Также вы можете установить указанные роли Windows Server с помощью PowerShell:
Install-WindowsFeature -Name RDS-Licensing, RDS-RD-Server –IncludeManagementTools
Проверьте, какие RDS роли установлены на сервере:
Get-WindowsFeature -Name RDS* | Where installed
Перезагрузите Windows командой:
Restart-Computer
Установка Remote Desktop Licensing и RDS лицензий (CAL)
Теперь нужно настроить роль Remote Desktop Licensing, которая обеспечивает лицензирование подключений пользователей к вашему RDS хосту. Допустимо установить и активировать роль Remote Desktop Licensing на этом же сервере (если он у вас один), либо можете разместить роль RDLicensing на отдельном сервере. Один сервер RDS Licensing можете выдавать лицензии неограниченному количеству RDSH хостов.
Если вы решили использовать локальный сервер RDLicensing, активируйте сервер лицензий RDS и установите клиентские лицензии (RDS CAL) согласно гайду по ссылке.
В рабочей группе можно использовать только RDS CAL типа Per Device. Если ваш сервер лицензирования выдает только Per User лицензии, то RDSH сервер будет каждые 60 минут принудительно завершать сеанс пользователей:
Remote Desktop License Issue There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes.
Настройка роли Remote Desktop Session Host в рабочей группе
Откройте консоль управления Remote Desktop Licensing Diagnoser (
lsdiag.msc
). В данном случае сервер RDSH еще не настроен на получение RDS CAL лицензий с сервера лицензирования. Об этом свидетельствуют надписи:
- The licensing mode for the Remote Desktop Session Host server is not configured
- Number of licenses available for clients:
0
Если вы не нацелите ваш RDSH сервер на сервер лицензирования, ваш сервер будет находится в триальном grace режиме. Пользователи могут использовать его в течении 120 дней (при каждом подключении в трее будет появляться сообщение “
Служба удаленных рабочих столов перестанет работать через xxx дней
”). После окончания grace периода ваши пользователи не смогут подключится к RDS с ошибкой:
Remote session was disconnected because there are no Remote Desktop client access licenses available for this computer.
Чтобы задать адрес сервера лицензирования RDS и тип лицензии, воспользуйтесь консолью редактора локальной групповой политики Windows (
gpedit.msc
).
- Перейдите в раздел GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing;
- Установите параметр Set the Remote Desktop licensing mode = Per Device;
- В Use the specified Remote Desktop license servers укажите адрес сервера, на котором установлен сервер RDLicensing. Если сервер лицензий установлен на этом же хосте, укажите
localhost
или127.0.0.1
- Обновите локальные политики, и запустите RDesktop Licensing Diagnoser. Убедитесь, что он видит ваши RDS CAL.
Дополнительно в локальных GPO вы можете настроить лимиты (таймауты) на длительность RDP сессий и правила отключения пользователей при неактивности.
Теперь создайте для локальные учетные записи пользователей, который они будут использовать для входа на RDS. Можно создать пользователей с помощью оснастки
lusrmgr.msc
или через PowerShell:
$UserPassword = ConvertTo-SecureString "Pa$$dr0w!!" -AsPlainText -Force
New-LocalUser "AIvanov" -Password $UserPassword -FullName "Andrey Ivanov"
Чтобы разрешить пользователю подключаться к серверу через службы Remote Desktop Services, нужно добавить его учетную запись в локальную группу Remote Desktop Users. Добавьте пользователей вручную через консоль управления группами или через PowerShell:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member AIvanov
Теперь пользователи могут попробовать со своих компьютеров подключится к вашему RDS хосту с помощью клиента mstsc.exe (или любого другого RDS клиента). Проверьте, что к серверу одновременно может подключится более двух активных RDP сессий.
srv1\username
(где srv1 – имя компьютера/hostname вашего RDS). Если указать имя пользователя с префиксам
.\
или без префикса, подразумевается что подключение выполняется под вашим локальным пользователем.При первом входе устройству пользователя выдается временная лицензия (особенности RDS Per Device лицензирования). При втором входе выдается постоянная лицензия, которая появится в консоли Remote Desktop Licensing Manager. Лицензия выдается на срок от 52 до 89 дней (случайное число).
Информация об успешной выдаче лицензии есть в следующем событие Event Viewer (Applications and Services Logs -> Microsoft -> Windows -> TerminalServices—Licensing -> Operational).
Event ID: 82 The "Temporary" Windows Server 2022 : RDS Per Device CAL belonging to computer "ComputerName" has been upgraded to "Permanent" Windows Server 2022 : RDS Per Device CAL.
Если вам нужно подключиться в RDP сессию пользователя, вы можете воспользоваться режимом теневого подключения RDS (он работает и на RDSH в рабочей группе).
Публикация приложения RemoteApp на RDS в рабочей группе (без домена)
На RDS в рабочей группе недоступна консоль управления сеансами, и поэтому отсутствуют инструменты для публикации приложений RemoteApp. Но есть обходное решение позволяющее через реестр опубликовать любое приложение в RemoteApp без домена Active Directory.
Пример REG файла для публикации на RDS сервере AdobeReader в качестве RemoteApp:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\MyAdobeReaderApp] "CommandLineSetting"=dword:00000000 "RequiredCommandLine"="" "Name"="Adobe Reader" "Path"="C:\\Program Files\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "ShortPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "IconPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "IconIndex"=dword:00000000 "ShowInTSWA"=dword:00000001 "SecurityDescriptor"=""
Замените имена и пути в REG файле на ваши и импортируйте его в реестр RDSH.
Теперь вручную отредактируйте файл *.RDP ярлыка, чтобы при его запуске автоматически запускалось опубликованное приложение. Добавьте в RDP файл следующие строки:
remoteapplicationmode:i:1 alternate shell:s:||MyAdobeReaderApp remoteapplicationname:s:MyAdobeReaderApp remoteapplicationprogram:s:||MyAdobeReaderApp
Попробуйте запустить RemoteApp приложение на RDS с поммощью вашего RDP файла. Опубликованное на RDSH приложение должно успешно запуститься на вашем рабочем столе.
Настройка шлюза RD Gateway в рабочей группе
Если вам нужно организовать безопасный доступ к вашему RDS северу через интернет, рекомендуется разместить его за VPN или опубликовать через шлюз RD Gateway.
Remote Desktop Gateway позволит открыть безопасный доступ из Интернета к RDS серверу интернета по защищенному SSL/TLS подключение по порту TCP:443 (вместо того, чтобы открывать стандартный RDP порт 3389, на котором будут постоянно фиксироваться попытки перебора паролей по RDP).
Вопреки распространённому заблуждению, RD Gateway можно развернуть без домена Active Directory. Подробная инструкция по настройке шлюза RD Gateway без домена доступна в статье Настройка шлюза Remote Desktop Gateway на Windows Server.