Установка RDS на Windows Server в рабочей группе (без домена)

Установка RDS на Windows Server в рабочей группе (без домена)

В этой статье описано, как установить и настроить роль терминального сервера 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 для управления ролями).

Server Manager установка Remote Desktop Services

Если вы выбрали в Server Manager тип установки Remote Desktop Services installation, то в режиме Standard deployment и Quick Start установщик дополнительно установит роли RD Connection Broker и RD Web Access. В нашем случае все эти роли излишни, т.к. мы ставим стендалон RDS сервер. установки Remote Desktop Services installation

Также вы можете установить указанные роли Windows Server с помощью PowerShell:

Install-WindowsFeature -Name RDS-Licensing, RDS-RD-Server –IncludeManagementTools

Установка RDS-Licensing, RDS-RD-Server в Windows Server 2019 через PowerShell

Проверьте, какие RDS роли установлены на сервере:

Get-WindowsFeature -Name RDS* | Where installed

powershell просмотр устаовленных ролей RDS в Windows Server 2019

Перезагрузите 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 License issue - your session will be disconnected in 60 minutes.

Настройка роли Remote Desktop Session Host в рабочей группе

Откройте консоль управления Remote Desktop Licensing Diagnoser (
lsdiag.msc
). В данном случае сервер RDSH еще не настроен на получение RDS CAL лицензий с сервера лицензирования. Об этом свидетельствуют надписи:

Remote Desktop Licensing Diagnoser не задан сервер лицензирования

Если вы не нацелите ваш 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
).

  1. Перейдите в раздел GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing;
  2. Установите параметр Set the Remote Desktop licensing mode = Per Device;
  3. В Use the specified Remote Desktop license servers укажите адрес сервера, на котором установлен сервер RDLicensing. Если сервер лицензий установлен на этом же хосте, укажите
    localhost
    или
    127.0.0.1
    настройка параметров лицензирования RDS сервера через локальную групповую политику
  4. Обновите локальные политики, и запустите RDesktop Licensing Diagnoser. Убедитесь, что он видит ваши RDS CAL. Remote Desktop Licensing Diagnoser проверить получение лицензий клиентами

Дополнительно в локальных GPO вы можете настроить лимиты (таймауты) на длительность RDP сессий и правила отключения пользователей при неактивности.

Если вам нужно создать отдельные групповые политики с настройками для локальных пользователей и администраторов, воспользуйтесь функционалом множественных GPO (MLGPO).

Теперь создайте для локальные учетные записи пользователей, который они будут использовать для входа на 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

локальная группа Remote Desktop Users

Теперь пользователи могут попробовать со своих компьютеров подключится к вашему RDS хосту с помощью клиента mstsc.exe (или любого другого RDS клиента). Проверьте, что к серверу одновременно может подключится более двух активных RDP сессий.

При подключении к RDSH серверу в рабочей группы нужно указывать имя в формате
srv1username
(где srv1 – имя компьютера/hostname вашего RDS). Если указать имя пользователя с префиксам
.
или без префикса, подразумевается что подключение выполняется под вашим локальным пользователем.

mstsc параметры подключения к rdsh серверу

При первом входе устройству пользователя выдается временная лицензия (особенности RDS Per Device лицензирования). При втором входе выдается постоянная лицензия, которая появится в консоли Remote Desktop Licensing Manager. Лицензия выдается на срок от 52 до 89 дней (случайное число).

Информация об успешной выдаче лицензии есть в следующем событие Event Viewer (Applications and Services Logs -> Microsoft -> Windows -> TerminalServicesLicensing -> 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.

Лог выдачи RDS лицензий

Если вам нужно подключиться в RDP сессию пользователя, вы можете воспользоваться режимом теневого подключения RDS (он работает и на RDSH в рабочей группе).

Публикация приложения RemoteApp на RDS в рабочей группе (без домена)

На RDS в рабочей группе недоступна консоль управления сеансами, и поэтому отсутствуют инструменты для публикации приложений RemoteApp. Но есть обходное решение позволяющее через реестр опубликовать любое приложение в RemoteApp без домена Active Directory.

Пример REG файла для публикации на RDS сервере AdobeReader в качестве RemoteApp:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerTSAppAllowListApplicationsMyAdobeReaderApp]
"CommandLineSetting"=dword:00000000
"RequiredCommandLine"=""
"Name"="Adobe Reader"
"Path"="C:Program FilesAdobeAcrobat DCAcrobatAcrobat.exe"
"ShortPath"="C:PROGRA~1AdobeAcrobat DCAcrobatAcrobat.exe"
"IconPath"="C:PROGRA~1AdobeAcrobat DCAcrobatAcrobat.exe"
"IconIndex"=dword:00000000
"ShowInTSWA"=dword:00000001
"SecurityDescriptor"=""

Опубликовать remoteapp на RDS в рабочей группе через реестр

Замените имена и пути в REG файле на ваши и импортируйте его в реестр RDSH.

Теперь вручную отредактируйте файл *.RDP ярлыка, чтобы при его запуске автоматически запускалось опубликованное приложение. Добавьте в RDP файл следующие строки:

remoteapplicationmode:i:1
alternate shell:s:||MyAdobeReaderApp
remoteapplicationname:s:MyAdobeReaderApp
remoteapplicationprogram:s:||MyAdobeReaderApp

Указать параметры для запуска remoteapp в rdp файле

Попробуйте запустить RemoteApp приложение на RDS с поммощью вашего RDP файла. Опубликованное на RDSH приложение должно успешно запуститься на вашем рабочем столе.

Значок запущенного remoteapp приложения в панели задач

Решение проблемы с медленной работой RemoteApp в Windows Server 2019/2016 описано здесь.

Настройка шлюза 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.

Windows Server 2019
Установка RDS на Windows Server в рабочей группе (без домена)