Встановлення ролі Remote Desktop Licensing у Windows Server 2019/2016

Ви можете встановити компонент Remote Desktop Licensing на будь-якому сервері домену, не обов’язково встановлювати його на одному із серверів ферми RDSH.

Перед початком встановлення сервера ліцензування RDS потрібно додати цей хост (або переконатися, що у вас є право на додавання) до доменної групи Terminal Server License Servers, інакше сервер не зможе видати CAL типу RDS Per User користувачам домену.

Можна встановити службу Remote Desktop Licensing через консоль Server Manager. Для цього у майстрі Add Roles and Features виберіть роль Remote Desktop Services.

Як компонент ролі потрібно вибрати службу Remote Desktop Licensing.

Дочекайтесь закінчення встановлення ролі.

Для керування службою RDS-Licensing використовується консоль Remote Desktop Licensing Managerlicmgr.exe

У Windows Server стандартні компоненти та ролі найпростіше встановити за допомогою PowerShell. Для встановлення служби ліцензування RDS та утиліти RD Licensing Diagnoser достатньо виконати одну команду:

Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools

Для виведення списку служб RDS, встановлених на сервері, використовуйте команду:

Get-WindowsFeature -Name RDS* | Where installed

Активація сервера ліцензій RDS у Windows Server

Щоб сервер ліцензування RDS міг видавати ліцензії клієнтам, його потрібно активувати. Для цього відкрийте консоль Remote Desktop Licensing Manager (licmgr.exe), клацніть ПКМ на ім’я вашого сервера і виберіть пункт меню Activate Server.

Запуститься майстер активації сервера ліцензування RDS, в якому потрібно вибрати бажаний спосіб активації. Якщо ваш сервер має доступ до Інтернету, він може автоматично підключитися до серверів Microsoft. Якщо доступу до Інтернету з сервера немає, можна активувати сервер через веб-браузер або по телефону.

Далі потрібно буде заповнити низку інформації про вашу організацію

Залишилося натиснути кнопку Finish.

Клацніть правою клавішею в консолі на ім’я сервера і виберіть Review Configuration. Тут можна переконатися, що цей сервер ліцензій RDS є активованим і може бути використаний для активації клієнтів RDS в домені.

Типи клієнтських термінальних ліцензій (RDS CAL)

Кожен користувач або пристрій, який підключається до серверів Remote Desktop Session Host, повинен мати ліцензію клієнта (CAL — client access license). Існують два типи термінальних CAL:

  • На пристрій (Per Device CAL) – це постійний тип ліцензії, що призначається комп’ютеру або пристрою, який підключається до RDS сервера більше одного разу (при першому підключенні пристрою йому видається тимчасова ліцензія). Дані ліцензії є конкурентними, тобто. якщо у вас 10 ліцензій Per Device, то до вашого RDS сервера зможуть підключитися лише 10 комп’ютерів. Актуальна OVL ліцензія називається так:
    WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
  • На пристрій (Per Device CAL) – це постійний тип ліцензії, що призначається комп’ютеру або пристрою, який підключається до RDS сервера більше одного разу (при першому підключенні пристрою йому видається тимчасова ліцензія). Дані ліцензії є конкурентними, тобто. якщо у вас 10 ліцензій Per Device, то до вашого RDS сервера зможуть підключитися лише 10 комп’ютерів. Актуальна OVL ліцензія називається так:
    WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL

Встановлення клієнтських ліцензій RDS CAL у Windows Server 2019/2016

Тепер на сервер ліцензування необхідно встановити придбаний пакет термінальних ліцензій (RDS CAL).

У консолі Remote Desktop Licensing Manager клацніть ПКМ на сервері та виберіть Install Licenses.

Виберіть спосіб активації (автоматично, через Інтернет або по телефону) та програму ліцензування (у нашому випадку Enterprise Agreement).

Наступні кроки майстра залежать від того, який тип ліцензування вибрано. У разі Enterprise Agreement потрібно вказати номер. Якщо вибрано тип ліцензування License Pack (Retail Purchase), потрібно буде вказати 25-символьний ключ продукту, отриманий від Microsoft або партнера.

Укажите тип продукта (Windows Server 2016 или 2019), тип лицензии (RDS Per User CAL) и количество терминальных лицензий, которые нужно установить на сервере.

Після цього сервер може видавати ліцензії (RDS CAL) клієнтам.

Ви можете конвертувати RDS ліцензії User CAL у Device CAL (і навпаки) за допомогою контекстного меню Convert Licenses у консолі RD Licensing Manager.

Якщо у вас закінчилися вільні ліцензії, ви можете відкликати раніше видані ліцензії RDS Device CAL для неактивних комп’ютерів за допомогою наступного сценарію PowerShell:

$RevokedPCName=”dnipro-pc323”
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {($_.keypacktype -ne 0) -and ($_.keypacktype -ne 4) -and ($_.keypacktype -ne 6)}
$licensepacks.TotalLicenses
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {$_.licensestatus -eq 2}
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $RevokedPCName
$RevokePC.Revoke()

Звіти про використання ліцензій CAL на RDS

У консолі керування ліцензіями CAL RDS можна сформувати звіт про використання ліцензій. Для цього в контекстному меню сервера виберіть Create Report -> CAL Usage.

Однак, я віддаю перевагу використанню PowerShell для побудови звітів про використання RDS CAL.
Наступний скрипт покаже кількість ліцензій, що залишилася, у всіх паках RDS CAL:

Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$licenses = (Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\* | Where-Object Name -Like "-Per User-*").Name
$total=0;
$issued=0;
foreach ($license in $licenses) {
$count=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\TotalLicenses).CurrentValue
$total= $total + $count
$count2=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\IssuedLicensesCount).CurrentValue
$issued= $issued + $count2
}
$available = $total - $issued
Write-Host "Total Licenses available: $available"

Ви можете запускати цей PowerShell скрипт через Zabbix і генерувати алерт, якщо кількість ліцензій, що залишилася менше, наприклад, 5.
Наступний скрипт дозволить отримати таблицю використання Per User ліцензій:

Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$path = “C:\Logs\Reports\RDS_CAL_Report.csv”
$fileName = (Invoke-WmiMethod Win32_TSLicenseReport -Name GenerateReportEx).FileName
$fileEntries = (Get-WmiObject Win32_TSLicenseReport | Where-Object FileName -eq $fileName).FetchReportEntries(0,0).ReportEntries
$objArray = @()
foreach($entry in $fileEntries){
$objArray += $entry | select User, ProductVersion, CALType, ExpirationDate
$objArray[-1].User = $objArray[-1].User.Split('\') | select -Last 1
$time = $objArray[-1].ExpirationDate.Split('.') | select -first 1
$objArray[-1].ExpirationDate = [datetime]::ParseExact($time, "yyyyMMddHHmmss", $null) } 
$objArray | Export-Csv -Path $path -Delimiter ',' -NoTypeInformation

Видалення RDS CAL із сервера ліцензування

Якщо ви хочете перенести набір ліцензій RDS CAL з одного сервера ліцензування Remote Desktop на інший, ви можете видалити встановлені ліцензії з сервера ліцензування за допомогою PowerShell.
Наступна команда виведе список встановлених пакетів RDS ліцензій на сервері:

Get-WmiObject Win32_TSLicenseKeyPack|select-object 
KeyPackId,ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses |ft

Знайдіть значення KeyPackId для пакета RDS CAL, який потрібно видалити і виполіти команду:

wmic /namespace:\\root\CIMV2 PATH Win32_TSLicenseKeyPack CALL UninstallLicenseKeyPackWithId KEYPACKID

Також ви можете повністю видалити всі набори CAL, створивши базу ліцензій RDS. Для цього зупиніть службу Remote Desktop Licensing:

Stop-Service TermServLicensing

Перейменуйте файл C:\Windows\System32\lserver\TLSLic.edb на C:\Windows\System32\lserver\TLSLic.bak і запустіть службу:

Start-Service TermServLicensing

Після цього всі ліцензії RDS CAL будуть видалені, і ви повинні активувати їх заново.

Настройка серверов RDSH на использование сервера лицензий RDS

Після активації служби сервера ліцензування RDS можна переналаштувати термінальні сервери RD Session Host для отримання ліцензій з цього сервера. Вибрати тип ліцензій та вказати ім’я термінального сервера з графічного інтерфейсу Server Manager, за допомогою PowerShell або групової політики.
Щоб змінити адресу сервера ліцензування на хості RDS, відкрийте Server Manager -> Remote Desktop Services -> Collections. У верхньому правому меню “Tasks” виберіть “Edit Deployment Properties”.

настройках перейдіть на вкладку RD Licensing, виберіть тип ліцензування (Select the Remote Desktop licensing mode) та сервер RDS ліцензій (Specify a license server). Натисніть Add -> Ok.

Ви можете змінити адресу сервера ліцензування RDS та тип CAL за допомогою PowerShell:

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting

Потім вкажіть бажаний тип ліцензування:

$obj.ChangeMode(4)

Тепер можна вказати ім’я сервера ліцензування RDS:

$obj.SetSpecifiedLicenseServerList("rds-lic323.it-homyak.ua")

І перевірити налаштування:

$obj.GetSpecifiedLicenseServerList()

Якщо ви хочете призначити налаштування сервера ліцензування RDS через групові політики, потрібно створити нову GPO і призначити її на OU з серверами RDS (або ви можете вказати ім’я сервера ліцензування RDS за допомогою локального редактора групових політик – gpedit.msc ). Налаштування ліцензування задаються в розділі: Computer Configuration -> Policies -> Admin Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing.

У цьому розділі є 2 політики, що нас цікавлять:

  • Use the specified Remote Desktop license servers – тут вказується адреса сервера ліцензування RDS;
  • Set the Remote Desktop licensing mode – вибір способу ліцензування (типу клієнтських ліцензій – RDS CAL).

Перевірити статус сервера ліцензій та кількість виданих ліцензій можна за допомогою програми Remote Desktop Licensing Diagnoser (lsdiag.msc). Утиліту RD Licensing Diagnoster можна встановити на серверах з роллю RDSH через (Server Manager: Features -> Remote Server Administration Tools -> Role Administration Tools -> Remote Desktop Services Tools -> Remote Desktop Licensing Diagnoser Tools).

Якщо сервер RDSH не налаштований на використання сервера ліцензій RDS, у консолі Licensing Diagnoser будуть наявні такі попередження:

Якщо ви встановили RDSH на ознайомлювальну редакцію Windows Server Evaluation, не забудьте перевести його у повноцінну версію згідно з інструкцією. Без конвертації служби RDSH на такому хості будуть працювати лише 120 днів навіть після того, як ви націлите його на активований сервер ліцензій RDS.

Якщо попереджень немає, і ви бачите повідомлення “RD Licensing Diagnoser не identify any licensing problems for Remote Desktop Session Host server”, отже RDSH сервер може отримувати ліцензії RDS CAL для користувачів.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *