В этой статье описано, как установить и настроить роль терминального сервера Remote Desktop Session Host в рабочей группе (без домена Active Directory) и без всех дополнительных ролей (Connection Broker, Remote Desktop Web Access, RDS Gateway).
Windows Server с ролью RDSH (Remote Desktop Session Host) позволяет одновременно подключаться к серверу по RDP нескольким пользователям (по умолчанию в Windows Server разрешены только 2 административных RDP подключения). Для каждого пользователя создается отдельная сессия и он получает доступ к персональному рабочему столу
Если вы планируете используете отдельный RDS сервер в рабочей группе, имейте в виду, что его функциональность ограничена. Он не может масштабироваться до полноценной RDS фермы Windows Server, нельзя создавать отдельные коллекцию или RemoteApp, нет брокера, нельзя использовать User Profile Disks для профилей пользователей, отсутствуют средства централизованного управления, при проведении операций обслуживания RDP сервис будет недоступен.
Установка роли Remote Desktop Services в Windows Server 2019
Предполагаем, что вы уже установили сервер с Windows Server и выполнили базовые настройки (ip адрес, имя сервера, время/дата, установили обновления и т.д.). Теперь можно установить службу 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
Перезагрузите сервер:
Restart-Computer
Настройка роли Remote Desktop Licensing, добавление RDS лицензий (CAL)
Следующий этап – настройка роли Remote Desktop Licensing, которая обеспечивает лицензирование RDP подключений пользователей к вашему RDS серверу. Вы можете установить и активировать роль Remote Desktop Licensing на данном хосте (если он у вас один), либо можете разместить роль RDLicensing на другом сервере. Один сервер с ролью RDS Licensing можете выдавать лицензии неограниченному количеству RDSH хостов.
Если вы решили использовать локальный сервер RDLicensing, активируйте сервер лицензий RDS и установите клиентские лицензии (RDS CAL) согласно гайду по ссылке.
В рабочей группе нужно использовать RDS CAL типа Per Device. Если ваш сервер лицензирования выдает только Per User лицензии, то пользователи при RDP подключении к серверу будут получать ошибку:
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 в рабочей группе
Перейдите в Control Panel -> System and Security -> Administrative Tools -> Remote Desktop Services -> Remote Desktop Licensing Diagnoser. Обратите внимание, что ваш сервер еще не настроен на получение RDS CAL лицензий с сервера лицензирования. Об этом свидетельствуют надписи:
- Number of licenses available for clients: 0
Если вы не нацелите ваш RDSH сервер на сервер лицензирования RDS, который может выдать пользователям лицензии, ваш сервер будет находится в триальном режиме. В этом режиме службы RDS работают в течении всего 120 дней (при каждом подключении в трее будет появляться сообщение “ Служба удаленных рабочих столов перестанет работать через xxx дней ”). После окончания grace периода ваши пользователи не смогут подключится к RDS с ошибкой:
Основной недостаток роли Remote Desktop Services в Windows Server 2019 при установке в рабочей группе – у вас по сути нет никаких удобных инструментов управления ролью RDS. Любые настройки роли RDSH придется выполнять через редактор локальных групповых политик gpedit.msc .
Однако, есть неофициальный способ портировать консоли управления терминальным сервером от Windows Server 2008 R2 (tsadmin.msc и tsconfig.msc) на более новые версии Windows Server.
[/alert]
В локальной GPO нужно настроить параметры лицензирования RDS:
- Перейдите в раздел GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing;
- Установите параметра Set the Remote Desktop licensing mode: Per Device;
- Обновите локальные политики, и запустите Remote Desktop Licensing Diagnoser. Убедитесь, что он видит ваши RDS CAL.
Дополнительно в локальных GPO вы можете настроить лимиты (таймауты) на длительность RDP сессий и правила отключения пользователей при неактивности.
Если вы хотите настроить различные групповые политики для локальных пользователей и администраторов, воспользуйтесь функционалом множественных GPO (MLGPO).
Теперь нужно создать для пользователей локальные учетные записи на RDS сервере, под которыми они будут аутентифицироваться. Можно создать пользователей с помощью оснастки lusrmgr.msc или через PowerShell:
$UserPassword = ConvertTo-SecureString "Pa$$dr0w!!" -AsPlainText -Force
New-LocalUser "AIvanov" -Password $UserPassword -FullName "Andrey Ivanov"
Пользователь может самостоятельно сменить свой пароль в RDP сессии.
Чтобы разрешить пользователю подключаться к серверу через службы Remote Desktop Services, нужно добавить аккаунт в локальную группу Remote Desktop Users. Добавьте пользователей вручную через консоль управления группами или через PowerShell:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member AIvanov
Для данной группы пользователей разрешен вход в локальной политикие Allow logon through Remote Desktop Services (Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment). Эта же политика позволяет обеспечить RDP вход пользователям даже на контроллер домена.
Теперь пользователи могут попробовать со своих компьютеров подключится к вашему RDS хосту с помощью клиента mstsc.exe (или любого другого RDS клиента). Проверьте, что к серверу одновременно может подключится более двух активных RDP сессий .
При первом входе устройству пользователя выдается временная лицензия (особенности RDS Per Device лицензирования). При втором входе выдается постоянная лицензия, которая появится в консоли Remote Desktop Licensing Manager. Лицензия выдается на срок от 52 до 89 дней (случайное число).
Если у вас исчерпаны Per Device лицензии, вы можете вручную отозвать лицензии для некоторых устройств пользователей. Воспользуйтесь консоль RDSLicensing или таким PowerShell скриптом:
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {($_.keypacktype -ne 0) -and ($_.keypacktype -ne 4) -and ($_.keypacktype -ne 6)}
# общее количество лицензий типа per device
$licensepacks.TotalLicenses
# количество лицензий, выданных устройствам
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {$_.licensestatus -eq 2}
# имя компьютера, для которого нужно отозвать лицензию
$compname="MSK-PC16"
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $compname
$RevokePC.Revoke()
Если вам нужно подключиться в RDP сессию пользователя, вы можете воспользоваться режимом теневого подключения RDS (он работает на RDSH в рабочей группе).