В это статье мы рассмотрим процесс установки, настройки и активации роли сервера лицензирования удаленных рабочих столов (Remote Desktop Licensing) на базе Windows Server 2019 и 2016, а также процедуру установки и активации клиентских терминальных (RDS CAL).
Напомню, что после установки роли терминального сервера Remote Desktop Session Host, пользователи могут использовать его только в течении пробного периода 120 дней, после окончания которого возможность подключения к удаленному RDS серверу пропадает. Согласно схеме лицензирования Microsoft, все пользователи или устройства, подключающиеся к рабочему столу RDS сервера, должны быть лицензированы. Для учета и выдачи терминальных лицензий (RDS CAL) существует отдельная служба в роли RDS — Remote Desktop License Server.
Содержание:
- Установка роли Remote Desktop Licensing в Windows Server 2019/2016
- Активация сервера лицензий RDS в Windows Server
- Типы клиентских терминальных лицензий (RDS CAL)
- Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
- Отчеты об использовании лицензий CAL на RDS
- Удаление RDS CAL с сервера лицензирования
- Настройка серверов RDSH на использование сервера лицензий RDS
Установка роли 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 Manager —
licmgr.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 клиентов в домене.
- This license server is a member of the Terminal Server License Servers group in Active Directory. This license server will be able to issue RDS Per User CALs to users in the domain, and you will be able to track the usage of RDS Per User CALs.
- This license server is registered as a service connection point (SCP) in Active Directory Domain Services.
Типы клиентских терминальных лицензий (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 User CAL) – такой тип лицензии позволяет одному пользователю подключиться к серверу RDS с любого количества компьютеров/устройств. Данный тип лицензий привязывается к учетной записи пользователя в Active Directory, но выдается не навсегда, а на определенный период времени. Лицензия выдается на срок от 52 до 89 дней (случайное число). Актуальная Open Value лицензия этого типа называется так:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
.Если вы попытаетесь использовать RDS CAL Per User 2019 в рабочей группе (не в домене), то RDSH сервер будет каждые 60 минут принудительно завершать сеанс пользователей с сообщением: “Проблема с лицензией удаленных рабочих столов и ваш сеанс будет завершен через 60 мин / There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes ”. Поэтому для RDS серверов в среде workgroup нужно использовать только лицензирование на устройство — Per Device RDS CAL.
Примечание. Отметим, что 2016 RDS CAL можно установить только на сервере лицензирования под управлением Windows Server 2016 или 2019. Установка RDS CALs для более новые версий Windows Server на предыдущие версии Windows не поддерживается. Т.е. вы не сможете установить 2016 RDS CAL на хост лицензирования Windows Server 2012 R2.
При попытке добавить новые RDS CAL 2019 на Windows Server 2016 появится ошибка:
RD Licensing Manager The license code is not recognized. Ensure that you have entered the correct license code.
Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
Теперь на сервер лицензирования нужно установить приобретенный пакет терминальных лицензий (RDS CAL).
В консоли Remote Desktop Licensing Manager щелкните ПКМ по серверу и выберите Install Licenses.
Выберите способ активации (автоматически, через веб или по телефону) и программу лицензирования (в нашем случае Enterprise Agreement).
В сеть утекло уже довольно много enterprise agreement номеров для RDS (4965437). Найти номера думаю, не составит проблемы. Обычно даже не нужно искать кряки или активаторы.
Следующие шаги мастера зависят от того, какой тип лицензирования выбран. В случае 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=”msk-pc2332”
$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()
Можно отозвать до 20% Per-Device RDS CALs. Per-User CALs отозвать нельзя.
Отчеты об использовании лицензий 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)
Примечание. 4 указывается, если сервер должен использовать тип лицензирования Per User, 2 – если Per Device.
Теперь можно указать имя сервера лицензирования RDS:
$obj.SetSpecifiedLicenseServerList("rds-lic1.winitpro.ru")
И проверить настройки:
$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).
Хосты RDSH для получения лицензий с сервера RDS Licensing обращаются к нему по следующим портам. Убедитесь, что они не блокируются межсетевыми экранами (или Windows Firewall):
- TCP/135 (Microsoft RPC)
- UDP/137 (NetBIOS Datagram Service)
- UDP/138 (NetBIOS Name Resolution)
- TCP/139 (NetBIOS Session Service)
- TCP/445 (SMB)
- TCP 49152 – 65535 — RPC динамический диапазон адресов
Вы можете проверить доступность портов с помощью утилиты PortQry или командлета Test-NetConnection.
Проверить статус сервера лицензий и количество выданных лицензий можно с помощью утилиты 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 будут присутствовать следующие предупреждения:
- Licenses are not available for this Remoter Desktop Session Host server, and RD Licensing Diagnose has identified licensing problems for the RDSH
- Number of licenses available for clients: 0
- The licensing mode for the Remote Desktop Session Host server is not configured
- Remote Desktop Session Host server is within its grace period, but the RD Session Host server has not been configured with any license server.
alert] Если вы установили RDSH на ознакомительно редакции Windows Server Evaluation, не забудьте перевести его в полноценную версию согласно инструкции. Без конвертации службы RDSH на таком хосте будут работать только 120 дней даже после того, как вы нацелите его на активированный сервер лицензий RDS.[/alert]
Если предупреждений нет, и вы видите сообщение “RD Licensing Diagnoser did not identify any licensing problems for the Remote Desktop Session Host server”, значит RDSH сервер может получать лицензии RDS CAL для пользователей.
Примечание. В нашем случае после указания нового сервера лицензирования, на RDP клиенте при подключении стала появляться ошибка “The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license”. Решение – удаление ключа L$RTMTIMEBOMB из реестра.
$RevokedPCName=”msk-pc2332”
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {(
В этой статье мы проведем вас через процесс установки, настройки и активации роли сервера лицензирования удаленных рабочих столов на основе Windows Server 2019 и 2016, а также установку и активацию клиентского терминала (RDS CAL).
Напомню, что после установки роли терминального сервера узла сеансов удаленных рабочих столов пользователи смогут использовать ее только в течение 120-дневного льготного периода, после чего возможность подключения к удаленному серверу RDS исчезнет. Согласно схеме лицензирования Microsoft, все пользователи или устройства, которые подключаются к рабочему столу сервера RDS, должны иметь лицензию. Для учета и лицензирования терминала (RDS CAL) в роли RDS есть отдельная служба – Remote Desktop License Server.
Установка роли Remote Desktop Licensing в Windows Server 2019/2016
лицензирование удаленного рабочего стола можно установить на любом сервере в домене, его не нужно устанавливать на одном из серверов в ферме RDSH.
Перед началом установки сервера лицензий RDS вам необходимо добавить этот хост (или убедиться, что у вас есть права на добавление) в группу домена Серверы лицензирования сервера терминалов, иначе сервер не сможет выдать RDS To User CAL для домена пользователей.
вы можете установить службу лицензирования удаленных рабочих столов через консоль Server Manager. Для этого в мастере добавления ролей и компонентов выберите роль «Службы удаленных рабочих столов.
Выберите службу лицензирования удаленных рабочих столов как часть роли.
Осталось дождаться завершения установки роли.
Консоль диспетчера лицензирования удаленных рабочих столов –
licmgr.exe
используется для управления службой лицензирования RDS —
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
.
В Windows Server стандартные функции и роли проще установить через PowerShell. Чтобы установить службу лицензирования RDS и средство диагностики лицензирования удаленных рабочих столов, просто выполните команду:
Get-WindowsFeature -Name RDS* | Where installed
Чтобы вывести список служб RDS, установленных на сервере, используйте команду:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
Активация сервера лицензий RDS в Windows Server
Чтобы сервер лицензий RDS мог лицензировать клиентов, он должен быть активирован. Для этого откройте консоль диспетчера лицензирования удаленных рабочих столов (licmgr.exe), щелкните правой кнопкой мыши имя своего сервера и выберите пункт меню «Активировать сервер.
Запустится мастер активации сервера лицензий RDS, предлагающий выбрать желаемый метод активации. Если у вашего сервера есть доступ в Интернет, он может автоматически подключаться к серверам Microsoft. Если доступ в Интернет с сервера недоступен, вы можете активировать сервер через веб-браузер или по телефону.
Далее вам нужно будет ввести ряд информации о вашей организации (некоторые поля обязательны).
Осталось нажать кнопку Готово.
Щелкните правой кнопкой мыши имя сервера в консоли и выберите «Проверить конфигурацию». Здесь вы можете убедиться, что этот сервер лицензий RDS активирован и может использоваться для активации клиентов RDS в домене.
- Этот сервер лицензий является членом группы серверов лицензий сервера терминалов в Active Directory. Этот сервер лицензий сможет выдавать RDS Per User CAL пользователям в домене, и пользователь сможет отслеживать использование RDS Per User CAL.
- Этот сервер лицензий зарегистрирован как точка подключения службы (SCP) в доменных службах Active Directory.
% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610877 %% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610878%
Типы клиентских терминальных лицензий (RDS CAL)
У каждого пользователя или устройства, которые подключаются к серверам узла сеансов удаленных рабочих столов, должна быть лицензия клиентского доступа (CAL). Существует два типа клиентских лицензий на терминал.
- CAL на устройство – это тип постоянной лицензии, назначаемой компьютеру или устройству, которое подключается к серверу RDS более одного раза (временная лицензия выдается при первом подключении устройства). Эти лицензии неконкурентоспособны, т.е если у вас есть 10 лицензий на устройство, только 10 компьютеров смогут подключиться к вашему серверу RDS. Текущая лицензия OVL называется так:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
- CAL на пользователя: этот тип лицензии позволяет пользователю подключаться к серверу RDS с любого количества компьютеров / устройств. Этот тип лицензии привязан к учетной записи пользователя в Active Directory, но не выпускается постоянно, а на определенный период времени. Лицензия выдается на срок от 52 до 89 дней (случайное число). Текущая лицензия Open Value этого типа называется следующим образом:
$RevokePC.Revoke()
Если вы попытаетесь использовать RDS CAL на пользователя 2019 в рабочей группе (не в домене), сервер RDSH заставит пользователей выходить из системы каждые 60 минут с сообщение: «Проблема с удаленными лицензированными рабочими столами и сеансом будут отключены через 60 минут». Следовательно, для серверов RDS в среде рабочей группы необходимо использовать только лицензии на устройства – клиентские лицензии RDS на устройство.
Примечание. Обратите внимание, что клиентскую лицензию RDS CAL 2016 можно установить только на сервере лицензий под управлением Windows Server 2016 или 2019. Установка клиентской лицензии RDS CAL для более новых версий Windows Server в более старых версиях Windows не поддерживается. Они не смогут установить клиентскую лицензию RDS 2016 CAL на лицензионном узле Windows Server 2012 R2.
При попытке добавить новую клиентскую лицензию RDS CAL 2019 на Windows Server 2016 отобразится ошибка:
Лицензирование удаленного рабочего стола. Лицензионный ключ не распознается. Убедитесь, что вы ввели правильный лицензионный ключ.
Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
Теперь вам необходимо установить купленный пакет терминальной лицензии (RDS CAL) на сервере лицензий).
В консоли диспетчера лицензирования удаленных рабочих столов щелкните сервер правой кнопкой мыши и выберите «Установить лицензии.
Выберите способ активации (автоматическая, через Интернет или по телефону) и лицензионную программу (в нашем случае Enterprise Agreement).
Многие номера корпоративных контрактов для RDS (4965437) уже просочились в сеть. Думаю, найти цифры не составит труда. Обычно даже искать трещинки или активаторы не нужно.
Следующие шаги мастера зависят от выбранного типа лицензии. В случае Enterprise Agreement необходимо указать номер. Если у вас тип лицензии License Pack (Retail Purchase), вам нужно будет предоставить 25-значный ключ продукта от Microsoft или партнера.
Укажите тип продукта (Windows Server 2016 или 2019), тип лицензии (RDS Per User CAL) и количество терминальных лицензий, которые будут установлены на сервере.
Впоследствии сервер может выдавать клиентам лицензии (RDS CAL.
вы можете преобразовать пользовательские клиентские лицензии служб удаленных рабочих столов в клиентские лицензии для устройств (и наоборот) с помощью контекстного меню «Преобразовать лицензии» в консоли лицензирования удаленных рабочих столов.
Если у вас закончились бесплатные лицензии, вы можете отозвать ранее выданные клиентские лицензии RDS на устройство для неактивных компьютеров с помощью следующего сценария PowerShell:
$ RevokedPCName = "msk-pc2332”
$ licensepacks = Get-WmiObject win32_tslicensekeypack | где {($ _ keypacktype -ne 0) -e ($ _ keypacktype -ne 4) -e ($ _ keypacktype -ne 6)}
$ licenses.TotalLicenses
$ TSLicensesAssigned = gwmi win32_tsissuedlicense | где {$ _ licensestatus -eq 2}
$ RevokePC = $ TSLicensesAssigned | ? sIssuedToComputer -EQ $ Revoked PCName
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"
вы можете отозвать до 20% клиентских лицензий на службы удаленных рабочих столов для каждого устройства. Клиентские лицензии на пользователя не могут быть отозваны.
Отчеты об использовании лицензий CAL на RDS
В консоли управления RDS CAL Management Console вы можете создать отчет об использовании лицензии. Для этого в контекстном меню сервера выберите Create Report -> CAL Usage.
Однако я предпочитаю использовать PowerShell, чтобы сообщать об использовании RDS CAL.
Следующий сценарий покажет оставшееся количество лицензий во всех пакетах RDS CAL:
Импорт-модуль RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$ licenses = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ * | Where-Object Name-Like "-Per User - *"). Имя
$ total = 0;
выдано $ = 0;
foreach (лицензия $ в лицензиях) {
$ count = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ TotalLicenses) .CurrentValue
$ total = $ total + $ count
$ count2 = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ IssuedLicensesCount) .CurrentValue
$ выпущено = $ выпущено + $ count2
}
$ доступно = $ всего - $ выдано
Write-Host «Всего доступных лицензий: $ доступно"
Вы можете запустить этот сценарий PowerShell через Zabbix и сгенерировать предупреждение, если оставшееся количество лицензий меньше, например 5.
Следующий скрипт позволит вам получить таблицу использования лицензий на пользователя:
Импорт-модуль 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 в $ fileEntries){
$ objArray + = $ item | выберите User, Product Version, CALType, Expiration Date
$ objArray [-1] .User = $ objArray [-1] .User.Split ('\') | выбрать -Последний 1
$ time = $ objArray [-1] .ExpirationDate.Split ('.') | выберите -первый 1
$ objArray [-1] .ExpirationDate = [datetime] :: ParseExact ($ time, "yyyyMMddHHmmss", $ null)
}
$ objArray | Экспорт-CSV -Path $ path -Delimiter ',' -NoTypeInformation
Удаление RDS CAL с сервера лицензирования
Если вы хотите перенести набор клиентских лицензий служб удаленных рабочих столов с одного сервера лицензий на удаленный рабочий стол на другой, вы можете удалить установленные лицензии с сервера лицензий с помощью PowerShell.
Следующая команда выведет список лицензионных пакетов RDS, установленных на сервере:
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
Найдите значение KeyPackId для пакета RDS CAL, который вы хотите удалить, и выполните команду:
Get-WmiObject Win32_TSLicenseKeyPack|select-object KeyPackId,ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses |ft
Кроме того, вы можете полностью удалить все клиентские лицензии, воссоздав базу лицензий RDS. Для этого остановите службу лицензирования удаленных рабочих столов:
wmic /namespace:\\root\CIMV2 PATH Win32_TSLicenseKeyPack CALL UninstallLicenseKeyPackWithId KEYPACKID
Переименуйте файл C: \ Windows \ System32 \ lserver \ TLSLic.edb в C: \ Windows \ System32 \ lserver \ TLSLic.bak и запустите службу:
Stop-Service TermServLicensing
Впоследствии все клиентские лицензии RDS будут удалены, и их необходимо будет повторно активировать.
Настройка серверов RDSH на использование сервера лицензий RDS
После активации службы сервера лицензий служб удаленных рабочих столов можно перенастроить серверы терминалов узла сеансов удаленных рабочих столов для получения лицензий с этого сервера. Выберите тип лицензии и укажите имя терминального сервера в диспетчере серверов, PowerShell или графическом интерфейсе групповой политики.
Чтобы изменить адрес сервера лицензий на узле RDS, откройте Диспетчер серверов -> Службы удаленных рабочих столов -> Библиотеки. В меню «Задачи» вверху справа выберите «Изменить свойства распределения”.
В настройках перейдите на вкладку «Лицензирование удаленного рабочего стола», выберите тип лицензии (выберите режим лицензирования удаленного рабочего стола) и сервер лицензий RDS (укажите сервер лицензий). Щелкните Добавить -> ОК.
Если тип лицензии не установлен на сервере RDSH, появится ошибка «Не установлен режим лицензии для сервера узла сеансов удаленных рабочих столов”.
вы можете изменить адрес сервера лицензий RDS и тип клиентской лицензии с помощью PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Затем укажите желаемый тип лицензии:
Start-Service TermServLicensing
Примечание. 4 указывает, должен ли сервер использовать тип лицензии на пользователя, 2 – если на устройство.
Теперь вы можете указать имя сервера лицензий RDS:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
И проверим настройки:
$obj.ChangeMode(4)
Если вы хотите назначить параметры сервера лицензий RDS через групповую политику, вам необходимо создать новый объект групповой политики и назначить его организационной единице с сервером RDS (или вы можете указать имя сервера лицензий RDS с помощью локального редактора групповой политики –
$obj.SetSpecifiedLicenseServerList("rds-lic1.winitpro.ru")
). Параметры лицензии задаются в разделе: Конфигурация компьютера -> Политики -> Шаблоны администрирования -> Компоненты Windows -> Службы удаленного рабочего стола -> Узел сеанса удаленного рабочего стола -> Лицензии.
В этом разделе нас интересуют 2 правила:
- Использовать указанные серверы лицензий удаленного рабочего стола: здесь указывается адрес сервера лицензий RDS;
- Установите режим лицензии Remote Desktop – выберите метод лицензирования (тип клиентской лицензии – RDS CAL).
Узлы RDSH используют следующие порты для получения лицензий с сервера лицензирования RDS. Убедитесь, что они не заблокированы брандмауэром (или брандмауэром Windows):
- TCP / 135 (Microsoft RPC)
- UDP / 137 (служба дейтаграмм NetBIOS)
- UDP / 138 (разрешение имени NetBIOS)
- TCP / 139 (служба сеансов NetBIOS)
- TCP / 445 (PMI)
- TCP 49152 – 65535 – Диапазон динамических адресов RPC
проверить доступность портов можно с помощью служебной программы PortQry или командлета Test-NetConnection.
вы можете проверить состояние сервера лицензий и количество выданных лицензий с помощью утилиты Remote Desktop Licensing Diagnoser (lsdiag.msc). Средство диагностики лицензирования удаленных рабочих столов можно установить на серверах с ролью RDSH через (Диспетчер сервера: Функции -> Средства удаленного администрирования сервера -> Средства администрирования ролей -> Средства служб удаленных рабочих столов -> Средства диагностики лицензий на удаленный рабочий стол).
Если сервер RDSH не настроен для использования сервера лицензий RDS, Licensing Diagnoser отобразит следующие предупреждения:
- Лицензии недоступны для этого сервера узла сеансов удаленных рабочих столов, и программа диагностики лицензирования удаленных рабочих столов выявила проблемы с лицензированием для RDSH
- Количество лицензий, доступных клиентам: 0
- Режим лицензирования для сервера узла сеансов удаленных рабочих столов не настроен
- Сервер узла сеансов удаленных рабочих столов находится в льготном периоде, но сервер узла сеансов удаленных рабочих столов не настроен с какими-либо серверами лицензий.
[alert] Если вы установили RDSH в Windows Server Evaluation, не забудьте перевести его в полную версию в соответствии с инструкциями. Без преобразования службы RDSH на таком хосте будут работать только в течение 120 дней даже после направления его на активированный сервер лицензий RDS. [/ Тревога]
Если предупреждений нет и отображается сообщение «Диагностика лицензирования удаленных рабочих столов не выявила никаких проблем с лицензированием для сервера узла сеансов удаленных рабочих столов», сервер RDSH может получить клиентские лицензии на службы удаленных рабочих столов для пользователей.
Примечание. В нашем случае после указания нового сервера лицензий клиент RDP начал получать сообщение об ошибке «Удаленный сеанс был отключен, поскольку отсутствует сервер лицензий удаленного рабочего стола для предоставления лицензии» при подключении. Решение – удалить ключ L $ RTMTIMEBOMB из реестра. Источник изображения: winitpro.ru.keypacktype -ne 0) -and (
В этой статье мы проведем вас через процесс установки, настройки и активации роли сервера лицензирования удаленных рабочих столов на основе Windows Server 2019 и 2016, а также установку и активацию клиентского терминала (RDS CAL).
Напомню, что после установки роли терминального сервера узла сеансов удаленных рабочих столов пользователи смогут использовать ее только в течение 120-дневного льготного периода, после чего возможность подключения к удаленному серверу RDS исчезнет. Согласно схеме лицензирования Microsoft, все пользователи или устройства, которые подключаются к рабочему столу сервера RDS, должны иметь лицензию. Для учета и лицензирования терминала (RDS CAL) в роли RDS есть отдельная служба – Remote Desktop License Server.
Установка роли Remote Desktop Licensing в Windows Server 2019/2016
лицензирование удаленного рабочего стола можно установить на любом сервере в домене, его не нужно устанавливать на одном из серверов в ферме RDSH.
Перед началом установки сервера лицензий RDS вам необходимо добавить этот хост (или убедиться, что у вас есть права на добавление) в группу домена Серверы лицензирования сервера терминалов, иначе сервер не сможет выдать RDS To User CAL для домена пользователей.
вы можете установить службу лицензирования удаленных рабочих столов через консоль Server Manager. Для этого в мастере добавления ролей и компонентов выберите роль «Службы удаленных рабочих столов.
Выберите службу лицензирования удаленных рабочих столов как часть роли.
Осталось дождаться завершения установки роли.
Консоль диспетчера лицензирования удаленных рабочих столов –
licmgr.exe
используется для управления службой лицензирования RDS —
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
.
В Windows Server стандартные функции и роли проще установить через PowerShell. Чтобы установить службу лицензирования RDS и средство диагностики лицензирования удаленных рабочих столов, просто выполните команду:
Get-WindowsFeature -Name RDS* | Where installed
Чтобы вывести список служб RDS, установленных на сервере, используйте команду:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
Активация сервера лицензий RDS в Windows Server
Чтобы сервер лицензий RDS мог лицензировать клиентов, он должен быть активирован. Для этого откройте консоль диспетчера лицензирования удаленных рабочих столов (licmgr.exe), щелкните правой кнопкой мыши имя своего сервера и выберите пункт меню «Активировать сервер.
Запустится мастер активации сервера лицензий RDS, предлагающий выбрать желаемый метод активации. Если у вашего сервера есть доступ в Интернет, он может автоматически подключаться к серверам Microsoft. Если доступ в Интернет с сервера недоступен, вы можете активировать сервер через веб-браузер или по телефону.
Далее вам нужно будет ввести ряд информации о вашей организации (некоторые поля обязательны).
Осталось нажать кнопку Готово.
Щелкните правой кнопкой мыши имя сервера в консоли и выберите «Проверить конфигурацию». Здесь вы можете убедиться, что этот сервер лицензий RDS активирован и может использоваться для активации клиентов RDS в домене.
- Этот сервер лицензий является членом группы серверов лицензий сервера терминалов в Active Directory. Этот сервер лицензий сможет выдавать RDS Per User CAL пользователям в домене, и пользователь сможет отслеживать использование RDS Per User CAL.
- Этот сервер лицензий зарегистрирован как точка подключения службы (SCP) в доменных службах Active Directory.
% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610877 %% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610878%
Типы клиентских терминальных лицензий (RDS CAL)
У каждого пользователя или устройства, которые подключаются к серверам узла сеансов удаленных рабочих столов, должна быть лицензия клиентского доступа (CAL). Существует два типа клиентских лицензий на терминал.
- CAL на устройство – это тип постоянной лицензии, назначаемой компьютеру или устройству, которое подключается к серверу RDS более одного раза (временная лицензия выдается при первом подключении устройства). Эти лицензии неконкурентоспособны, т.е если у вас есть 10 лицензий на устройство, только 10 компьютеров смогут подключиться к вашему серверу RDS. Текущая лицензия OVL называется так:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
- CAL на пользователя: этот тип лицензии позволяет пользователю подключаться к серверу RDS с любого количества компьютеров / устройств. Этот тип лицензии привязан к учетной записи пользователя в Active Directory, но не выпускается постоянно, а на определенный период времени. Лицензия выдается на срок от 52 до 89 дней (случайное число). Текущая лицензия Open Value этого типа называется следующим образом:
$obj.GetSpecifiedLicenseServerList()
Если вы попытаетесь использовать RDS CAL на пользователя 2019 в рабочей группе (не в домене), сервер RDSH заставит пользователей выходить из системы каждые 60 минут с сообщение: «Проблема с удаленными лицензированными рабочими столами и сеансом будут отключены через 60 минут». Следовательно, для серверов RDS в среде рабочей группы необходимо использовать только лицензии на устройства – клиентские лицензии RDS на устройство.
Примечание. Обратите внимание, что клиентскую лицензию RDS CAL 2016 можно установить только на сервере лицензий под управлением Windows Server 2016 или 2019. Установка клиентской лицензии RDS CAL для более новых версий Windows Server в более старых версиях Windows не поддерживается. Они не смогут установить клиентскую лицензию RDS 2016 CAL на лицензионном узле Windows Server 2012 R2.
При попытке добавить новую клиентскую лицензию RDS CAL 2019 на Windows Server 2016 отобразится ошибка:
Лицензирование удаленного рабочего стола. Лицензионный ключ не распознается. Убедитесь, что вы ввели правильный лицензионный ключ.
Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
Теперь вам необходимо установить купленный пакет терминальной лицензии (RDS CAL) на сервере лицензий).
В консоли диспетчера лицензирования удаленных рабочих столов щелкните сервер правой кнопкой мыши и выберите «Установить лицензии.
Выберите способ активации (автоматическая, через Интернет или по телефону) и лицензионную программу (в нашем случае Enterprise Agreement).
Многие номера корпоративных контрактов для RDS (4965437) уже просочились в сеть. Думаю, найти цифры не составит труда. Обычно даже искать трещинки или активаторы не нужно.
Следующие шаги мастера зависят от выбранного типа лицензии. В случае Enterprise Agreement необходимо указать номер. Если у вас тип лицензии License Pack (Retail Purchase), вам нужно будет предоставить 25-значный ключ продукта от Microsoft или партнера.
Укажите тип продукта (Windows Server 2016 или 2019), тип лицензии (RDS Per User CAL) и количество терминальных лицензий, которые будут установлены на сервере.
Впоследствии сервер может выдавать клиентам лицензии (RDS CAL.
вы можете преобразовать пользовательские клиентские лицензии служб удаленных рабочих столов в клиентские лицензии для устройств (и наоборот) с помощью контекстного меню «Преобразовать лицензии» в консоли лицензирования удаленных рабочих столов.
Если у вас закончились бесплатные лицензии, вы можете отозвать ранее выданные клиентские лицензии RDS на устройство для неактивных компьютеров с помощью следующего сценария PowerShell:
$ RevokedPCName = "msk-pc2332”
$ licensepacks = Get-WmiObject win32_tslicensekeypack | где {($ _ keypacktype -ne 0) -e ($ _ keypacktype -ne 4) -e ($ _ keypacktype -ne 6)}
$ licenses.TotalLicenses
$ TSLicensesAssigned = gwmi win32_tsissuedlicense | где {$ _ licensestatus -eq 2}
$ RevokePC = $ TSLicensesAssigned | ? sIssuedToComputer -EQ $ Revoked PCName
gpedit.msc
вы можете отозвать до 20% клиентских лицензий на службы удаленных рабочих столов для каждого устройства. Клиентские лицензии на пользователя не могут быть отозваны.
Отчеты об использовании лицензий CAL на RDS
В консоли управления RDS CAL Management Console вы можете создать отчет об использовании лицензии. Для этого в контекстном меню сервера выберите Create Report -> CAL Usage.
Однако я предпочитаю использовать PowerShell, чтобы сообщать об использовании RDS CAL.
Следующий сценарий покажет оставшееся количество лицензий во всех пакетах RDS CAL:
Импорт-модуль RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$ licenses = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ * | Where-Object Name-Like "-Per User - *"). Имя
$ total = 0;
выдано $ = 0;
foreach (лицензия $ в лицензиях) {
$ count = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ TotalLicenses) .CurrentValue
$ total = $ total + $ count
$ count2 = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ IssuedLicensesCount) .CurrentValue
$ выпущено = $ выпущено + $ count2
}
$ доступно = $ всего - $ выдано
Write-Host «Всего доступных лицензий: $ доступно"
Вы можете запустить этот сценарий PowerShell через Zabbix и сгенерировать предупреждение, если оставшееся количество лицензий меньше, например 5.
Следующий скрипт позволит вам получить таблицу использования лицензий на пользователя:
Импорт-модуль 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 в $ fileEntries){
$ objArray + = $ item | выберите User, Product Version, CALType, Expiration Date
$ objArray [-1] .User = $ objArray [-1] .User.Split ('\') | выбрать -Последний 1
$ time = $ objArray [-1] .ExpirationDate.Split ('.') | выберите -первый 1
$ objArray [-1] .ExpirationDate = [datetime] :: ParseExact ($ time, "yyyyMMddHHmmss", $ null)
}
$ objArray | Экспорт-CSV -Path $ path -Delimiter ',' -NoTypeInformation
Удаление RDS CAL с сервера лицензирования
Если вы хотите перенести набор клиентских лицензий служб удаленных рабочих столов с одного сервера лицензий на удаленный рабочий стол на другой, вы можете удалить установленные лицензии с сервера лицензий с помощью PowerShell.
Следующая команда выведет список лицензионных пакетов RDS, установленных на сервере:
[*]
Найдите значение KeyPackId для пакета RDS CAL, который вы хотите удалить, и выполните команду:
[*]
Кроме того, вы можете полностью удалить все клиентские лицензии, воссоздав базу лицензий RDS. Для этого остановите службу лицензирования удаленных рабочих столов:
[*]
Переименуйте файл C: \ Windows \ System32 \ lserver \ TLSLic.edb в C: \ Windows \ System32 \ lserver \ TLSLic.bak и запустите службу:
[*]
Впоследствии все клиентские лицензии RDS будут удалены, и их необходимо будет повторно активировать.
Настройка серверов RDSH на использование сервера лицензий RDS
После активации службы сервера лицензий служб удаленных рабочих столов можно перенастроить серверы терминалов узла сеансов удаленных рабочих столов для получения лицензий с этого сервера. Выберите тип лицензии и укажите имя терминального сервера в диспетчере серверов, PowerShell или графическом интерфейсе групповой политики.
Чтобы изменить адрес сервера лицензий на узле RDS, откройте Диспетчер серверов -> Службы удаленных рабочих столов -> Библиотеки. В меню «Задачи» вверху справа выберите «Изменить свойства распределения”.
В настройках перейдите на вкладку «Лицензирование удаленного рабочего стола», выберите тип лицензии (выберите режим лицензирования удаленного рабочего стола) и сервер лицензий RDS (укажите сервер лицензий). Щелкните Добавить -> ОК.
Если тип лицензии не установлен на сервере RDSH, появится ошибка «Не установлен режим лицензии для сервера узла сеансов удаленных рабочих столов”.
вы можете изменить адрес сервера лицензий RDS и тип клиентской лицензии с помощью PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Затем укажите желаемый тип лицензии:
[*]
Примечание. 4 указывает, должен ли сервер использовать тип лицензии на пользователя, 2 – если на устройство.
Теперь вы можете указать имя сервера лицензий RDS:
[*]
И проверим настройки:
[*]
Если вы хотите назначить параметры сервера лицензий RDS через групповую политику, вам необходимо создать новый объект групповой политики и назначить его организационной единице с сервером RDS (или вы можете указать имя сервера лицензий RDS с помощью локального редактора групповой политики – [*]). Параметры лицензии задаются в разделе: Конфигурация компьютера -> Политики -> Шаблоны администрирования -> Компоненты Windows -> Службы удаленного рабочего стола -> Узел сеанса удаленного рабочего стола -> Лицензии.
В этом разделе нас интересуют 2 правила:
- Использовать указанные серверы лицензий удаленного рабочего стола: здесь указывается адрес сервера лицензий RDS;
- Установите режим лицензии Remote Desktop – выберите метод лицензирования (тип клиентской лицензии – RDS CAL).
Узлы RDSH используют следующие порты для получения лицензий с сервера лицензирования RDS. Убедитесь, что они не заблокированы брандмауэром (или брандмауэром Windows):
- TCP / 135 (Microsoft RPC)
- UDP / 137 (служба дейтаграмм NetBIOS)
- UDP / 138 (разрешение имени NetBIOS)
- TCP / 139 (служба сеансов NetBIOS)
- TCP / 445 (PMI)
- TCP 49152 – 65535 – Диапазон динамических адресов RPC
проверить доступность портов можно с помощью служебной программы PortQry или командлета Test-NetConnection.
вы можете проверить состояние сервера лицензий и количество выданных лицензий с помощью утилиты Remote Desktop Licensing Diagnoser (lsdiag.msc). Средство диагностики лицензирования удаленных рабочих столов можно установить на серверах с ролью RDSH через (Диспетчер сервера: Функции -> Средства удаленного администрирования сервера -> Средства администрирования ролей -> Средства служб удаленных рабочих столов -> Средства диагностики лицензий на удаленный рабочий стол).
Если сервер RDSH не настроен для использования сервера лицензий RDS, Licensing Diagnoser отобразит следующие предупреждения:
- Лицензии недоступны для этого сервера узла сеансов удаленных рабочих столов, и программа диагностики лицензирования удаленных рабочих столов выявила проблемы с лицензированием для RDSH
- Количество лицензий, доступных клиентам: 0
- Режим лицензирования для сервера узла сеансов удаленных рабочих столов не настроен
- Сервер узла сеансов удаленных рабочих столов находится в льготном периоде, но сервер узла сеансов удаленных рабочих столов не настроен с какими-либо серверами лицензий.
<p[>alert] Если вы установили RDSH в Windows Server Evaluation, не забудьте перевести его в полную версию в соответствии с инструкциями. Без преобразования службы RDSH на таком хосте будут работать только в течение 120 дней даже после направления его на активированный сервер лицензий RDS. [/ Тревога]
Если предупреждений нет и отображается сообщение «Диагностика лицензирования удаленных рабочих столов не выявила никаких проблем с лицензированием для сервера узла сеансов удаленных рабочих столов», сервер RDSH может получить клиентские лицензии на службы удаленных рабочих столов для пользователей.
Примечание. В нашем случае после указания нового сервера лицензий клиент RDP начал получать сообщение об ошибке «Удаленный сеанс был отключен, поскольку отсутствует сервер лицензий удаленного рабочего стола для предоставления лицензии» при подключении. Решение – удалить ключ L $ RTMTIMEBOMB из реестра. Источник изображения: winitpro.ru.keypacktype -ne 4) -and (
В этой статье мы проведем вас через процесс установки, настройки и активации роли сервера лицензирования удаленных рабочих столов на основе Windows Server 2019 и 2016, а также установку и активацию клиентского терминала (RDS CAL).
Напомню, что после установки роли терминального сервера узла сеансов удаленных рабочих столов пользователи смогут использовать ее только в течение 120-дневного льготного периода, после чего возможность подключения к удаленному серверу RDS исчезнет. Согласно схеме лицензирования Microsoft, все пользователи или устройства, которые подключаются к рабочему столу сервера RDS, должны иметь лицензию. Для учета и лицензирования терминала (RDS CAL) в роли RDS есть отдельная служба – Remote Desktop License Server.
Установка роли Remote Desktop Licensing в Windows Server 2019/2016
лицензирование удаленного рабочего стола можно установить на любом сервере в домене, его не нужно устанавливать на одном из серверов в ферме RDSH.
Перед началом установки сервера лицензий RDS вам необходимо добавить этот хост (или убедиться, что у вас есть права на добавление) в группу домена Серверы лицензирования сервера терминалов, иначе сервер не сможет выдать RDS To User CAL для домена пользователей.
вы можете установить службу лицензирования удаленных рабочих столов через консоль Server Manager. Для этого в мастере добавления ролей и компонентов выберите роль «Службы удаленных рабочих столов.
Выберите службу лицензирования удаленных рабочих столов как часть роли.
Осталось дождаться завершения установки роли.
Консоль диспетчера лицензирования удаленных рабочих столов –
licmgr.exe
используется для управления службой лицензирования RDS —
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
.
В Windows Server стандартные функции и роли проще установить через PowerShell. Чтобы установить службу лицензирования RDS и средство диагностики лицензирования удаленных рабочих столов, просто выполните команду:
Get-WindowsFeature -Name RDS* | Where installed
Чтобы вывести список служб RDS, установленных на сервере, используйте команду:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
Активация сервера лицензий RDS в Windows Server
Чтобы сервер лицензий RDS мог лицензировать клиентов, он должен быть активирован. Для этого откройте консоль диспетчера лицензирования удаленных рабочих столов (licmgr.exe), щелкните правой кнопкой мыши имя своего сервера и выберите пункт меню «Активировать сервер.
Запустится мастер активации сервера лицензий RDS, предлагающий выбрать желаемый метод активации. Если у вашего сервера есть доступ в Интернет, он может автоматически подключаться к серверам Microsoft. Если доступ в Интернет с сервера недоступен, вы можете активировать сервер через веб-браузер или по телефону.
Далее вам нужно будет ввести ряд информации о вашей организации (некоторые поля обязательны).
Осталось нажать кнопку Готово.
Щелкните правой кнопкой мыши имя сервера в консоли и выберите «Проверить конфигурацию». Здесь вы можете убедиться, что этот сервер лицензий RDS активирован и может использоваться для активации клиентов RDS в домене.
- Этот сервер лицензий является членом группы серверов лицензий сервера терминалов в Active Directory. Этот сервер лицензий сможет выдавать RDS Per User CAL пользователям в домене, и пользователь сможет отслеживать использование RDS Per User CAL.
- Этот сервер лицензий зарегистрирован как точка подключения службы (SCP) в доменных службах Active Directory.
% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610877 %% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610878%
Типы клиентских терминальных лицензий (RDS CAL)
У каждого пользователя или устройства, которые подключаются к серверам узла сеансов удаленных рабочих столов, должна быть лицензия клиентского доступа (CAL). Существует два типа клиентских лицензий на терминал.
- CAL на устройство – это тип постоянной лицензии, назначаемой компьютеру или устройству, которое подключается к серверу RDS более одного раза (временная лицензия выдается при первом подключении устройства). Эти лицензии неконкурентоспособны, т.е если у вас есть 10 лицензий на устройство, только 10 компьютеров смогут подключиться к вашему серверу RDS. Текущая лицензия OVL называется так:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
- CAL на пользователя: этот тип лицензии позволяет пользователю подключаться к серверу RDS с любого количества компьютеров / устройств. Этот тип лицензии привязан к учетной записи пользователя в Active Directory, но не выпускается постоянно, а на определенный период времени. Лицензия выдается на срок от 52 до 89 дней (случайное число). Текущая лицензия Open Value этого типа называется следующим образом: [*] Если вы попытаетесь использовать RDS CAL на пользователя 2019 в рабочей группе (не в домене), сервер RDSH заставит пользователей выходить из системы каждые 60 минут с сообщение: «Проблема с удаленными лицензированными рабочими столами и сеансом будут отключены через 60 минут». Следовательно, для серверов RDS в среде рабочей группы необходимо использовать только лицензии на устройства – клиентские лицензии RDS на устройство.
Примечание. Обратите внимание, что клиентскую лицензию RDS CAL 2016 можно установить только на сервере лицензий под управлением Windows Server 2016 или 2019. Установка клиентской лицензии RDS CAL для более новых версий Windows Server в более старых версиях Windows не поддерживается. Они не смогут установить клиентскую лицензию RDS 2016 CAL на лицензионном узле Windows Server 2012 R2.
При попытке добавить новую клиентскую лицензию RDS CAL 2019 на Windows Server 2016 отобразится ошибка:
Лицензирование удаленного рабочего стола. Лицензионный ключ не распознается. Убедитесь, что вы ввели правильный лицензионный ключ.
Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
Теперь вам необходимо установить купленный пакет терминальной лицензии (RDS CAL) на сервере лицензий).
В консоли диспетчера лицензирования удаленных рабочих столов щелкните сервер правой кнопкой мыши и выберите «Установить лицензии.
Выберите способ активации (автоматическая, через Интернет или по телефону) и лицензионную программу (в нашем случае Enterprise Agreement).
Многие номера корпоративных контрактов для RDS (4965437) уже просочились в сеть. Думаю, найти цифры не составит труда. Обычно даже искать трещинки или активаторы не нужно.
Следующие шаги мастера зависят от выбранного типа лицензии. В случае Enterprise Agreement необходимо указать номер. Если у вас тип лицензии License Pack (Retail Purchase), вам нужно будет предоставить 25-значный ключ продукта от Microsoft или партнера.
Укажите тип продукта (Windows Server 2016 или 2019), тип лицензии (RDS Per User CAL) и количество терминальных лицензий, которые будут установлены на сервере.
Впоследствии сервер может выдавать клиентам лицензии (RDS CAL.
вы можете преобразовать пользовательские клиентские лицензии служб удаленных рабочих столов в клиентские лицензии для устройств (и наоборот) с помощью контекстного меню «Преобразовать лицензии» в консоли лицензирования удаленных рабочих столов.
Если у вас закончились бесплатные лицензии, вы можете отозвать ранее выданные клиентские лицензии RDS на устройство для неактивных компьютеров с помощью следующего сценария PowerShell:
$ RevokedPCName = "msk-pc2332”
$ licensepacks = Get-WmiObject win32_tslicensekeypack | где {($ _ keypacktype -ne 0) -e ($ _ keypacktype -ne 4) -e ($ _ keypacktype -ne 6)}
$ licenses.TotalLicenses
$ TSLicensesAssigned = gwmi win32_tsissuedlicense | где {$ _ licensestatus -eq 2}
$ RevokePC = $ TSLicensesAssigned | ? sIssuedToComputer -EQ $ Revoked PCName
[*]
вы можете отозвать до 20% клиентских лицензий на службы удаленных рабочих столов для каждого устройства. Клиентские лицензии на пользователя не могут быть отозваны.
Отчеты об использовании лицензий CAL на RDS
В консоли управления RDS CAL Management Console вы можете создать отчет об использовании лицензии. Для этого в контекстном меню сервера выберите Create Report -> CAL Usage.
Однако я предпочитаю использовать PowerShell, чтобы сообщать об использовании RDS CAL.
Следующий сценарий покажет оставшееся количество лицензий во всех пакетах RDS CAL:
Импорт-модуль RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$ licenses = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ * | Where-Object Name-Like "-Per User - *"). Имя
$ total = 0;
выдано $ = 0;
foreach (лицензия $ в лицензиях) {
$ count = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ TotalLicenses) .CurrentValue
$ total = $ total + $ count
$ count2 = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ IssuedLicensesCount) .CurrentValue
$ выпущено = $ выпущено + $ count2
}
$ доступно = $ всего - $ выдано
Write-Host «Всего доступных лицензий: $ доступно"
Вы можете запустить этот сценарий PowerShell через Zabbix и сгенерировать предупреждение, если оставшееся количество лицензий меньше, например 5.
Следующий скрипт позволит вам получить таблицу использования лицензий на пользователя:
Импорт-модуль 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 в $ fileEntries){
$ objArray + = $ item | выберите User, Product Version, CALType, Expiration Date
$ objArray [-1] .User = $ objArray [-1] .User.Split ('\') | выбрать -Последний 1
$ time = $ objArray [-1] .ExpirationDate.Split ('.') | выберите -первый 1
$ objArray [-1] .ExpirationDate = [datetime] :: ParseExact ($ time, "yyyyMMddHHmmss", $ null)
}
$ objArray | Экспорт-CSV -Path $ path -Delimiter ',' -NoTypeInformation
Удаление RDS CAL с сервера лицензирования
Если вы хотите перенести набор клиентских лицензий служб удаленных рабочих столов с одного сервера лицензий на удаленный рабочий стол на другой, вы можете удалить установленные лицензии с сервера лицензий с помощью PowerShell.
Следующая команда выведет список лицензионных пакетов RDS, установленных на сервере:
[*]
Найдите значение KeyPackId для пакета RDS CAL, который вы хотите удалить, и выполните команду:
[*]
Кроме того, вы можете полностью удалить все клиентские лицензии, воссоздав базу лицензий RDS. Для этого остановите службу лицензирования удаленных рабочих столов:
[*]
Переименуйте файл C: \ Windows \ System32 \ lserver \ TLSLic.edb в C: \ Windows \ System32 \ lserver \ TLSLic.bak и запустите службу:
[*]
Впоследствии все клиентские лицензии RDS будут удалены, и их необходимо будет повторно активировать.
Настройка серверов RDSH на использование сервера лицензий RDS
После активации службы сервера лицензий служб удаленных рабочих столов можно перенастроить серверы терминалов узла сеансов удаленных рабочих столов для получения лицензий с этого сервера. Выберите тип лицензии и укажите имя терминального сервера в диспетчере серверов, PowerShell или графическом интерфейсе групповой политики.
Чтобы изменить адрес сервера лицензий на узле RDS, откройте Диспетчер серверов -> Службы удаленных рабочих столов -> Библиотеки. В меню «Задачи» вверху справа выберите «Изменить свойства распределения”.
В настройках перейдите на вкладку «Лицензирование удаленного рабочего стола», выберите тип лицензии (выберите режим лицензирования удаленного рабочего стола) и сервер лицензий RDS (укажите сервер лицензий). Щелкните Добавить -> ОК.
Если тип лицензии не установлен на сервере RDSH, появится ошибка «Не установлен режим лицензии для сервера узла сеансов удаленных рабочих столов”.
вы можете изменить адрес сервера лицензий RDS и тип клиентской лицензии с помощью PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Затем укажите желаемый тип лицензии:
[*]
Примечание. 4 указывает, должен ли сервер использовать тип лицензии на пользователя, 2 – если на устройство.
Теперь вы можете указать имя сервера лицензий RDS:
[*]
И проверим настройки:
[*]
Если вы хотите назначить параметры сервера лицензий RDS через групповую политику, вам необходимо создать новый объект групповой политики и назначить его организационной единице с сервером RDS (или вы можете указать имя сервера лицензий RDS с помощью локального редактора групповой политики – [*]). Параметры лицензии задаются в разделе: Конфигурация компьютера -> Политики -> Шаблоны администрирования -> Компоненты Windows -> Службы удаленного рабочего стола -> Узел сеанса удаленного рабочего стола -> Лицензии.
В этом разделе нас интересуют 2 правила:
- Использовать указанные серверы лицензий удаленного рабочего стола: здесь указывается адрес сервера лицензий RDS;
- Установите режим лицензии Remote Desktop – выберите метод лицензирования (тип клиентской лицензии – RDS CAL).
Узлы RDSH используют следующие порты для получения лицензий с сервера лицензирования RDS. Убедитесь, что они не заблокированы брандмауэром (или брандмауэром Windows):
- TCP / 135 (Microsoft RPC)
- UDP / 137 (служба дейтаграмм NetBIOS)
- UDP / 138 (разрешение имени NetBIOS)
- TCP / 139 (служба сеансов NetBIOS)
- TCP / 445 (PMI)
- TCP 49152 – 65535 – Диапазон динамических адресов RPC
проверить доступность портов можно с помощью служебной программы PortQry или командлета Test-NetConnection.
вы можете проверить состояние сервера лицензий и количество выданных лицензий с помощью утилиты Remote Desktop Licensing Diagnoser (lsdiag.msc). Средство диагностики лицензирования удаленных рабочих столов можно установить на серверах с ролью RDSH через (Диспетчер сервера: Функции -> Средства удаленного администрирования сервера -> Средства администрирования ролей -> Средства служб удаленных рабочих столов -> Средства диагностики лицензий на удаленный рабочий стол).
Если сервер RDSH не настроен для использования сервера лицензий RDS, Licensing Diagnoser отобразит следующие предупреждения:
- Лицензии недоступны для этого сервера узла сеансов удаленных рабочих столов, и программа диагностики лицензирования удаленных рабочих столов выявила проблемы с лицензированием для RDSH
- Количество лицензий, доступных клиентам: 0
- Режим лицензирования для сервера узла сеансов удаленных рабочих столов не настроен
- Сервер узла сеансов удаленных рабочих столов находится в льготном периоде, но сервер узла сеансов удаленных рабочих столов не настроен с какими-либо серверами лицензий.
alert Если вы установили RDSH в Windows Server Evaluation, не забудьте перевести его в полную версию в соответствии с инструкциями. Без преобразования службы RDSH на таком хосте будут работать только в течение 120 дней даже после направления его на активированный сервер лицензий RDS. [/ Тревога]
Если предупреждений нет и отображается сообщение «Диагностика лицензирования удаленных рабочих столов не выявила никаких проблем с лицензированием для сервера узла сеансов удаленных рабочих столов», сервер RDSH может получить клиентские лицензии на службы удаленных рабочих столов для пользователей.
Примечание. В нашем случае после указания нового сервера лицензий клиент RDP начал получать сообщение об ошибке «Удаленный сеанс был отключен, поскольку отсутствует сервер лицензий удаленного рабочего стола для предоставления лицензии» при подключении. Решение – удалить ключ L $ RTMTIMEBOMB из реестра. Источник изображения: winitpro.ru.keypacktype -ne 6)}
$licensepacks.TotalLicenses
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {
В этой статье мы проведем вас через процесс установки, настройки и активации роли сервера лицензирования удаленных рабочих столов на основе Windows Server 2019 и 2016, а также установку и активацию клиентского терминала (RDS CAL).
Напомню, что после установки роли терминального сервера узла сеансов удаленных рабочих столов пользователи смогут использовать ее только в течение 120-дневного льготного периода, после чего возможность подключения к удаленному серверу RDS исчезнет. Согласно схеме лицензирования Microsoft, все пользователи или устройства, которые подключаются к рабочему столу сервера RDS, должны иметь лицензию. Для учета и лицензирования терминала (RDS CAL) в роли RDS есть отдельная служба – Remote Desktop License Server.
Установка роли Remote Desktop Licensing в Windows Server 2019/2016
лицензирование удаленного рабочего стола можно установить на любом сервере в домене, его не нужно устанавливать на одном из серверов в ферме RDSH.
Перед началом установки сервера лицензий RDS вам необходимо добавить этот хост (или убедиться, что у вас есть права на добавление) в группу домена Серверы лицензирования сервера терминалов, иначе сервер не сможет выдать RDS To User CAL для домена пользователей.
вы можете установить службу лицензирования удаленных рабочих столов через консоль Server Manager. Для этого в мастере добавления ролей и компонентов выберите роль «Службы удаленных рабочих столов.
Выберите службу лицензирования удаленных рабочих столов как часть роли.
Осталось дождаться завершения установки роли.
Консоль диспетчера лицензирования удаленных рабочих столов –
licmgr.exe
используется для управления службой лицензирования RDS —
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
.
В Windows Server стандартные функции и роли проще установить через PowerShell. Чтобы установить службу лицензирования RDS и средство диагностики лицензирования удаленных рабочих столов, просто выполните команду:
Get-WindowsFeature -Name RDS* | Where installed
Чтобы вывести список служб RDS, установленных на сервере, используйте команду:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
Активация сервера лицензий RDS в Windows Server
Чтобы сервер лицензий RDS мог лицензировать клиентов, он должен быть активирован. Для этого откройте консоль диспетчера лицензирования удаленных рабочих столов (licmgr.exe), щелкните правой кнопкой мыши имя своего сервера и выберите пункт меню «Активировать сервер.
Запустится мастер активации сервера лицензий RDS, предлагающий выбрать желаемый метод активации. Если у вашего сервера есть доступ в Интернет, он может автоматически подключаться к серверам Microsoft. Если доступ в Интернет с сервера недоступен, вы можете активировать сервер через веб-браузер или по телефону.
Далее вам нужно будет ввести ряд информации о вашей организации (некоторые поля обязательны).
Осталось нажать кнопку Готово.
Щелкните правой кнопкой мыши имя сервера в консоли и выберите «Проверить конфигурацию». Здесь вы можете убедиться, что этот сервер лицензий RDS активирован и может использоваться для активации клиентов RDS в домене.
- Этот сервер лицензий является членом группы серверов лицензий сервера терминалов в Active Directory. Этот сервер лицензий сможет выдавать RDS Per User CAL пользователям в домене, и пользователь сможет отслеживать использование RDS Per User CAL.
- Этот сервер лицензий зарегистрирован как точка подключения службы (SCP) в доменных службах Active Directory.
% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610877 %% MINIFYHTML4aa081ea0d4b00bef08bbeeb6ea610878%
Типы клиентских терминальных лицензий (RDS CAL)
У каждого пользователя или устройства, которые подключаются к серверам узла сеансов удаленных рабочих столов, должна быть лицензия клиентского доступа (CAL). Существует два типа клиентских лицензий на терминал.
- CAL на устройство – это тип постоянной лицензии, назначаемой компьютеру или устройству, которое подключается к серверу RDS более одного раза (временная лицензия выдается при первом подключении устройства). Эти лицензии неконкурентоспособны, т.е если у вас есть 10 лицензий на устройство, только 10 компьютеров смогут подключиться к вашему серверу RDS. Текущая лицензия OVL называется так:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
- CAL на пользователя: этот тип лицензии позволяет пользователю подключаться к серверу RDS с любого количества компьютеров / устройств. Этот тип лицензии привязан к учетной записи пользователя в Active Directory, но не выпускается постоянно, а на определенный период времени. Лицензия выдается на срок от 52 до 89 дней (случайное число). Текущая лицензия Open Value этого типа называется следующим образом: [*] Если вы попытаетесь использовать RDS CAL на пользователя 2019 в рабочей группе (не в домене), сервер RDSH заставит пользователей выходить из системы каждые 60 минут с сообщение: «Проблема с удаленными лицензированными рабочими столами и сеансом будут отключены через 60 минут». Следовательно, для серверов RDS в среде рабочей группы необходимо использовать только лицензии на устройства – клиентские лицензии RDS на устройство.
Примечание. Обратите внимание, что клиентскую лицензию RDS CAL 2016 можно установить только на сервере лицензий под управлением Windows Server 2016 или 2019. Установка клиентской лицензии RDS CAL для более новых версий Windows Server в более старых версиях Windows не поддерживается. Они не смогут установить клиентскую лицензию RDS 2016 CAL на лицензионном узле Windows Server 2012 R2.
При попытке добавить новую клиентскую лицензию RDS CAL 2019 на Windows Server 2016 отобразится ошибка:
Лицензирование удаленного рабочего стола. Лицензионный ключ не распознается. Убедитесь, что вы ввели правильный лицензионный ключ.
Установка клиентских лицензий RDS CAL в Windows Server 2019/2016
Теперь вам необходимо установить купленный пакет терминальной лицензии (RDS CAL) на сервере лицензий).
В консоли диспетчера лицензирования удаленных рабочих столов щелкните сервер правой кнопкой мыши и выберите «Установить лицензии.
Выберите способ активации (автоматическая, через Интернет или по телефону) и лицензионную программу (в нашем случае Enterprise Agreement).
Многие номера корпоративных контрактов для RDS (4965437) уже просочились в сеть. Думаю, найти цифры не составит труда. Обычно даже искать трещинки или активаторы не нужно.
Следующие шаги мастера зависят от выбранного типа лицензии. В случае Enterprise Agreement необходимо указать номер. Если у вас тип лицензии License Pack (Retail Purchase), вам нужно будет предоставить 25-значный ключ продукта от Microsoft или партнера.
Укажите тип продукта (Windows Server 2016 или 2019), тип лицензии (RDS Per User CAL) и количество терминальных лицензий, которые будут установлены на сервере.
Впоследствии сервер может выдавать клиентам лицензии (RDS CAL.
вы можете преобразовать пользовательские клиентские лицензии служб удаленных рабочих столов в клиентские лицензии для устройств (и наоборот) с помощью контекстного меню «Преобразовать лицензии» в консоли лицензирования удаленных рабочих столов.
Если у вас закончились бесплатные лицензии, вы можете отозвать ранее выданные клиентские лицензии RDS на устройство для неактивных компьютеров с помощью следующего сценария PowerShell:
$ RevokedPCName = "msk-pc2332”
$ licensepacks = Get-WmiObject win32_tslicensekeypack | где {($ _ keypacktype -ne 0) -e ($ _ keypacktype -ne 4) -e ($ _ keypacktype -ne 6)}
$ licenses.TotalLicenses
$ TSLicensesAssigned = gwmi win32_tsissuedlicense | где {$ _ licensestatus -eq 2}
$ RevokePC = $ TSLicensesAssigned | ? sIssuedToComputer -EQ $ Revoked PCName
[*]
вы можете отозвать до 20% клиентских лицензий на службы удаленных рабочих столов для каждого устройства. Клиентские лицензии на пользователя не могут быть отозваны.
Отчеты об использовании лицензий CAL на RDS
В консоли управления RDS CAL Management Console вы можете создать отчет об использовании лицензии. Для этого в контекстном меню сервера выберите Create Report -> CAL Usage.
Однако я предпочитаю использовать PowerShell, чтобы сообщать об использовании RDS CAL.
Следующий сценарий покажет оставшееся количество лицензий во всех пакетах RDS CAL:
Импорт-модуль RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$ licenses = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ * | Where-Object Name-Like "-Per User - *"). Имя
$ total = 0;
выдано $ = 0;
foreach (лицензия $ в лицензиях) {
$ count = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ TotalLicenses) .CurrentValue
$ total = $ total + $ count
$ count2 = (Get-Item -Path RDS: \ LicenseServer \ LicenseKeyPacks \ $ license \ IssuedLicensesCount) .CurrentValue
$ выпущено = $ выпущено + $ count2
}
$ доступно = $ всего - $ выдано
Write-Host «Всего доступных лицензий: $ доступно"
Вы можете запустить этот сценарий PowerShell через Zabbix и сгенерировать предупреждение, если оставшееся количество лицензий меньше, например 5.
Следующий скрипт позволит вам получить таблицу использования лицензий на пользователя:
Импорт-модуль 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 в $ fileEntries){
$ objArray + = $ item | выберите User, Product Version, CALType, Expiration Date
$ objArray [-1] .User = $ objArray [-1] .User.Split ('\') | выбрать -Последний 1
$ time = $ objArray [-1] .ExpirationDate.Split ('.') | выберите -первый 1
$ objArray [-1] .ExpirationDate = [datetime] :: ParseExact ($ time, "yyyyMMddHHmmss", $ null)
}
$ objArray | Экспорт-CSV -Path $ path -Delimiter ',' -NoTypeInformation
Удаление RDS CAL с сервера лицензирования
Если вы хотите перенести набор клиентских лицензий служб удаленных рабочих столов с одного сервера лицензий на удаленный рабочий стол на другой, вы можете удалить установленные лицензии с сервера лицензий с помощью PowerShell.
Следующая команда выведет список лицензионных пакетов RDS, установленных на сервере:
[*]
Найдите значение KeyPackId для пакета RDS CAL, который вы хотите удалить, и выполните команду:
[*]
Кроме того, вы можете полностью удалить все клиентские лицензии, воссоздав базу лицензий RDS. Для этого остановите службу лицензирования удаленных рабочих столов:
[*]
Переименуйте файл C: \ Windows \ System32 \ lserver \ TLSLic.edb в C: \ Windows \ System32 \ lserver \ TLSLic.bak и запустите службу:
[*]
Впоследствии все клиентские лицензии RDS будут удалены, и их необходимо будет повторно активировать.
Настройка серверов RDSH на использование сервера лицензий RDS
После активации службы сервера лицензий служб удаленных рабочих столов можно перенастроить серверы терминалов узла сеансов удаленных рабочих столов для получения лицензий с этого сервера. Выберите тип лицензии и укажите имя терминального сервера в диспетчере серверов, PowerShell или графическом интерфейсе групповой политики.
Чтобы изменить адрес сервера лицензий на узле RDS, откройте Диспетчер серверов -> Службы удаленных рабочих столов -> Библиотеки. В меню «Задачи» вверху справа выберите «Изменить свойства распределения”.
В настройках перейдите на вкладку «Лицензирование удаленного рабочего стола», выберите тип лицензии (выберите режим лицензирования удаленного рабочего стола) и сервер лицензий RDS (укажите сервер лицензий). Щелкните Добавить -> ОК.
Если тип лицензии не установлен на сервере RDSH, появится ошибка «Не установлен режим лицензии для сервера узла сеансов удаленных рабочих столов”.
вы можете изменить адрес сервера лицензий RDS и тип клиентской лицензии с помощью PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Затем укажите желаемый тип лицензии:
[*]
Примечание. 4 указывает, должен ли сервер использовать тип лицензии на пользователя, 2 – если на устройство.
Теперь вы можете указать имя сервера лицензий RDS:
[*]
И проверим настройки:
[*]
Если вы хотите назначить параметры сервера лицензий RDS через групповую политику, вам необходимо создать новый объект групповой политики и назначить его организационной единице с сервером RDS (или вы можете указать имя сервера лицензий RDS с помощью локального редактора групповой политики – [*]). Параметры лицензии задаются в разделе: Конфигурация компьютера -> Политики -> Шаблоны администрирования -> Компоненты Windows -> Службы удаленного рабочего стола -> Узел сеанса удаленного рабочего стола -> Лицензии.
В этом разделе нас интересуют 2 правила:
- Использовать указанные серверы лицензий удаленного рабочего стола: здесь указывается адрес сервера лицензий RDS;
- Установите режим лицензии Remote Desktop – выберите метод лицензирования (тип клиентской лицензии – RDS CAL).
Узлы RDSH используют следующие порты для получения лицензий с сервера лицензирования RDS. Убедитесь, что они не заблокированы брандмауэром (или брандмауэром Windows):
- TCP / 135 (Microsoft RPC)
- UDP / 137 (служба дейтаграмм NetBIOS)
- UDP / 138 (разрешение имени NetBIOS)
- TCP / 139 (служба сеансов NetBIOS)
- TCP / 445 (PMI)
- TCP 49152 – 65535 – Диапазон динамических адресов RPC
проверить доступность портов можно с помощью служебной программы PortQry или командлета Test-NetConnection.
вы можете проверить состояние сервера лицензий и количество выданных лицензий с помощью утилиты Remote Desktop Licensing Diagnoser (lsdiag.msc). Средство диагностики лицензирования удаленных рабочих столов можно установить на серверах с ролью RDSH через (Диспетчер сервера: Функции -> Средства удаленного администрирования сервера -> Средства администрирования ролей -> Средства служб удаленных рабочих столов -> Средства диагностики лицензий на удаленный рабочий стол).
Если сервер RDSH не настроен для использования сервера лицензий RDS, Licensing Diagnoser отобразит следующие предупреждения:
- Лицензии недоступны для этого сервера узла сеансов удаленных рабочих столов, и программа диагностики лицензирования удаленных рабочих столов выявила проблемы с лицензированием для RDSH
- Количество лицензий, доступных клиентам: 0
- Режим лицензирования для сервера узла сеансов удаленных рабочих столов не настроен
- Сервер узла сеансов удаленных рабочих столов находится в льготном периоде, но сервер узла сеансов удаленных рабочих столов не настроен с какими-либо серверами лицензий.
aler[t] Если вы установили RDSH в Windows Server Evaluation, не забудьте перевести его в полную версию в соответствии с инструкциями. Без преобразования службы RDSH на таком хосте будут работать только в течение 120 дней даже после направления его на активированный сервер лицензий RDS. [/ Тревога]
Если предупреждений нет и отображается сообщение «Диагностика лицензирования удаленных рабочих столов не выявила никаких проблем с лицензированием для сервера узла сеансов удаленных рабочих столов», сервер RDSH может получить клиентские лицензии на службы удаленных рабочих столов для пользователей.
Примечание. В нашем случае после указания нового сервера лицензий клиент RDP начал получать сообщение об ошибке «Удаленный сеанс был отключен, поскольку отсутствует сервер лицензий удаленного рабочего стола для предоставления лицензии» при подключении. Решение – удалить ключ L $ RTMTIMEBOMB из реестра. Источник изображения: winitpro.ru.licensestatus -eq 2}
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $RevokedPCName
Если вы попытаетесь использовать RDS CAL на пользователя 2019 в рабочей группе (не в домене), сервер RDSH заставит пользователей выходить из системы каждые 60 минут с сообщение: «Проблема с удаленными лицензированными рабочими столами и сеансом будут отключены через 60 минут». Следовательно, для серверов RDS в среде рабочей группы необходимо использовать только лицензии на устройства – клиентские лицензии RDS на устройство.
И так, нами всеми, любимый и не мерянно дорогой Microsoft Windows Server. О стоимости его лицензии можно только думать, особенно, на фоне множества бесплатных решений.
Одна из основных задач серверов для корпоративного сегмента — это терминальный сервер. «На него часто ставят» 1С и другое ПО для учета, а так же размещают информацию для общего пользования или то, что надо быстро скрыть от лишних глаз.
Сервер терминалов Windows требует лицензирования. Есть бесплатный период на 120 (90 для MS Windows Server 2000) дней, после чего «железка» остается доступной только админам и то монопольно.
Благо продукция Microsoft настолько дорога, что даже ее сотрудникам за это становиться стыдно и они добродушно оставляют лазейки. Вот одна из них: «6 шагов к лицензиям для терминального сервера». Процедуру установки описывать не буду, считаем что у вас установлена «служба удаленных рабочих столов» и «сервер лицензирования». Так же картинки понятные скрины комментировать не буду.
1. Входим в диспетчер лицензирования удаленных рабочих столов
2. Активируем сервер
3. Вводим любые учетные данные
4. Выбираем тип лицензии: Соглашение Enterprise Agreement
5. Указываем номер соглашения: 4965437
6. Выбираем вашу версию продукта и тип лицензии «на пользователя», можно и на устройство, но тогда есть вероятность их исчерпать, и указываем количество желаемых лицензий (более 9999 увы нельзя)
Для чистой совести можно перезагрузить Сервер. Пользуемся!
In this article, we’ll consider the installation, configuration, and activation of the Remote Desktop Licensing role on Windows Server 2019 and 2016, as well as the installation and activation of the RDS client access licenses (CALs).
I remind you that after the installation of the Remote Desktop Session Host role, users can use it only for 120 days of a trial period (evaluation license), and users can’t connect to an RDS host afterward. According to Microsoft licensing rules, all users or devices that use RDS features must be licensed. To register and issue Remote Desktop Client Access Licenses (RDS CALs), there is a separate Windows service in the RDS role called Remote Desktop License Server.
Contents:
- Install the Remote Desktop Licensing Role on Windows Server 2019/2016
- Activating the RDS License Server on Windows Server
- RDS CALs: Types of Remote Desktop Client Access Licenses
- Installing RDS CALs on Windows Server 2019/2016
- RDS CAL Usage Reports
- How to Remove RDS CALs from an RD License Server?
- Configuring RDS Licenses on RD Session Hosts
Install the Remote Desktop Licensing Role on Windows Server 2019/2016
You can deploy the Remote Desktop License service on any domain server. It is not necessary to install it on one of the servers on the RDSH farm.
Before you start the installation, add a new server to the Terminal Server License Servers domain security group (or make sure you have the permission to change this group membership), otherwise, the server won’t be able to issue RDS Per User CAL to the domain users.
You can install Remote Desktop Licensing using Server Manager. To do it, select the Remote Desktop Services role in the Add Roles and Features Wizard.
Select Remote Desktop Licensing as the role service.
It remains to wait until the installation of the role is completed.
The RDS-Licensing service is managed using the Remote Desktop Licensing Manager console (licmgr.exe
).
In Windows Server, it’s easier to install roles and features using PowerShell. To install the RDS Licensing Service and RD Licensing Diagnoser, just run one command:
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
To list the RDS services installed on the host, use the command:
Get-WindowsFeature -Name RDS* | Where installed
Activating the RDS License Server on Windows Server
In order to issue licenses to RDP clients, your RDS License Server must be activated. To do it, open the Remote Desktop Licensing Manager (licmgr.exe
), right-click the name of your server, and select Activate Server.
The RDS licensing server activation wizard will start. Here you will need to select the activation method you prefer. If your server is connected to the Internet, it can automatically connect to Microsoft servers and activate the RDS license server. If there is no direct Internet access from the server, you can activate the server using a web browser or by phone.
Then you must fill in some information about your company (some of the fields are required).
It remains to click the Finish button.
If you right-click the server name in the console and select Review Configuration, you can verify that the RDS License Server is activated and can be used to activate RDSH clients in your domain.
-
This license server is a member of the Terminal Server License Servers group in Active Directory. This license server will be able to issue RDS Per User CALs to users in the domain, and you will be able to track the usage of RDS Per User CALs.
-
This license server is registered as a service connection point (SCP) in Active Directory Domain Services.
RDS CALs: Types of Remote Desktop Client Access Licenses
Each user or device that connects to Remote Desktop Session hosts must have a client access license (CAL). There are two types of RDS CALs:
- Per-Device CAL – is the permanent license type assigned to a computer (device) that connects to the RDS server more than once (when a device is first connected, a temporary license is issued to it). These licenses are not concurrent, i.e., if you have 10 Per Device licenses, only 10 hosts can connect to your RDS server. The current OVL RDS CAL is called:
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCAL
; - Per-User CAL – is the type of license that allows a user to connect to the RDS server from any number of computers/devices. This type of license is associated with an Active Directory user and issued not permanently, but for a specific period of time. The license is issued for a period of 52 to 89 days (random number). The current Open Value license of this type is called
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCAL
.If you try to use RDS 2019 Per User CAL in a workgroup (not in a domain), then the RDSH server will forcibly ending a user session every 60 minutes with a message: “Remote Desktop License Issue: There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes”. Therefore, for RDS servers in a Windows Workgroup environment, you need to use the only device licensing (Per Device RDS CALs).
.
Note. We should note that the 2016 RDS CAL may be installed only on a licensing server running Windows Server 2016 or 2019. Installing RDS CALs to the previous Windows Server versions is not supported. Those, you cannot install 2016 RDS CALs on a Windows Server 2012 R2 licensing host.
When trying to add new RDS CALs 2019 on Windows Server 2016, an error will appear:
RD Licensing Manager The license code is not recognized. Ensure that you have entered the correct license code.
Installing RDS CALs on Windows Server 2019/2016
Now you must install the pack of Remote Desktop client licenses (RDS CAL) you have purchased on the License Server.
Right-click your server in Remote Desktop Licensing Manager and select Install Licenses.
Select the activation method (automatic, online, or by phone) and the license program (in our case, it is Enterprise Agreement).
Many enterprise agreement numbers for RDS have already been leaked on the Internet. I think it won’t be a problem to find the numbers (4965437), you don’t even need to look for rds cracks or activators.
The next steps of the wizard depend on which license program you have selected. In the case of an Enterprise Agreement, you must specify its number. If you have chosen License Pack (Retail Purchase), enter the 25-character product key you got from Microsoft or a partner.
Specify the product version (Windows Server 2019/2016), license type (RDS Per user CAL), and the number of licenses to be installed on the server.
After that, the server can issue licenses (RDS CAL) to clients.
You can convert RDS User CALs to Device CALs (and vice versa) using the Convert Licenses menu item in the RD Licensing Manager console.
If you have run out of free RDS licenses, you can revoke previously issued RDS Device CALs for inactive computers using the following PowerShell script:
$RevokedPCName=”lon-bc1-123”
$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()
Up to 20% of Per-Device RDS CALs can be revoked. Per-User CALs cannot be revoked.
RDS CAL Usage Reports
In the RDS License Console, you can generate a license usage report. To do this, select Create Report -> CAL Usage from the server context menu.
However, I prefer to use PowerShell to report RDS CAL usage. The following script will show the remaining number of licenses in all RDS CAL packs:
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"
You can run this PowerShell script via Zabbix and set an alert if the remaining number of licenses is less, for example, 5.
The following Powershell script will allow you to generate a Per User CAL Report:
Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$path = “C:\Reports\RDS_CAL_Usage.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
How to Remove RDS CALs from an RD License Server?
If you want to move your RDS CAL license packs from one Remote Desktop licensing server to another, you can remove the installed RDS CAL license pack from the licensing server using PowerShell.
Using the following cmdlet, you can list all the installed RDS CAL packs on the server:
Get-WmiObject Win32_TSLicenseKeyPack|select-object KeyPackId,ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses |ft
Find the KeyPackId value for the RDS CAL package that you want to remove and run the command:
wmic /namespace:\\root\CIMV2 PATH Win32_TSLicenseKeyPack CALL UninstallLicenseKeyPackWithId yourKeyPackId
You can also completely remove all CALs by re-creating the RDS license database. To do this, stop the Remote Desktop Licensing service:
Stop-Service TermServLicensing
Rename the file C:\Windows\System32\lserver\TLSLic.edb
to C:\Windows\System32\lserver\TLSLic.edb_bak
and start the service:
Start-Service TermServLicensing
After that, all RDS CAL licenses will be removed, and you must reactivate them.
Configuring RDS Licenses on RD Session Hosts
After the RDS License Server is activated and being run, you can reconfigure RD Session Host to obtain CAL licenses from this server. You can set the license type and specify the name of the license server from the Server Manager GUI, using PowerShell, or Group Policy.
To change the name/address of the licensing server on the RDS host, open Server Manager -> Remote Desktop Services -> Collections. In the upper right menu “Tasks” select “Edit Deployment Properties”.
In the deployment properties, go to the RD Licensing tab, select the Remote Desktop licensing mode, and set the RDS license server. Click Add -> Ok.
You can change the RDS license server address and CAL type using PowerShell:
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
Then specify the license type you need:
$obj.ChangeMode(4)
Note. Enter 4 if the server must use Per User licensing type, and 2, if it is Per Device.
Then specify the name of the RDS License Server:
$obj.SetSpecifiedLicenseServerList("rdslic2016.woshub.com")
And check the current settings:
$obj.GetSpecifiedLicenseServerList()
If you want to assign the RDS licensing server parameters via Group Policy, you need to create a new GPO and link it to the OU with RDS servers (or you can specify the name of the RDS licensing server using the Local Group Policy Editor – gpedit.msc
). The RD licensing settings are located under the following GPO section: Computer Configuration -> Policies -> Admin Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing.
There are two Remote Desktop settings that we need to configure:
- Use the specified Remote Desktop license servers – the address of the License Server is set;
- Set the Remote Desktop licensing mode – select RDS CAL license type.
RDSH hosts use the following network ports to obtain an RDS license from the RDS Licensing server. Make sure that they are not blocked by firewalls (or Windows Defender Firewall):
- TCP/135 – Microsoft RPC;
- UDP/137 – NetBIOS Datagram Service;
- UDP/138 – NetBIOS Name Resolution;
- TCP/139 – NetBIOS Session Service;
- TCP/445 – SMB;
- TCP/49152–65535 – RPC dynamic address range
You can check for open ports using the PortQry tool or the Test-NetConnection cmdlet.
Try to check the RD License Server status and the number of the issued licenses using the Remote Desktop Licensing Diagnoser tool (lsdiag.msc
or Administrative Tools -> Remote Desktop Services -> RD Licensing Diagnoser). RD Licensing Diagnoster can be installed on RDSH servers using Server Manager (Features -> Remote Server Administration Tools -> Role Administration Tools -> Remote Desktop Services Tools -> Remote Desktop Licensing Diagnoser Tools).
If the RDSH server is not configured to use an RDS license server, the following warnings will appear in the Licensing Diagnoser console:
-
Licenses are not available for this Remoter Desktop Session Host server, and RD Licensing Diagnose has identified licensing problems for the RDSH.
-
Number of licenses available for clients: 0
-
The licensing mode for the Remote Desktop Session Host server is not configured.
-
Remote Desktop Session Host server is within its grace period, but the RD Session Host server has not been configured with any license server.
If you installed RDSH on the Windows Server Evaluation edition, do not forget to convert it to the full version according to the guide. Without conversion, RDSH services on such a host will only work for 120 days, even if you target it to an activated RDS license server.
If there are no warnings, and you see the message “RD Licensing Diagnoser did not identify any licensing problems for the Remote Desktop Session Host server”, then the RDSH server can successfully receive RDS CALs for remote users and/or devices.
Note. In our case, after we specified the new License Server address the following error started to appear on the RDP client: “The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license”. The problem can be solved by removing the L$RTMTIMEBOMB key from the registry on the RDSH server.
Every user or a client connected to a windows server requires a CAL (Client Access License). To manage client access licenses, you need RDS Licensing. This article teaches, how to install and activate the RDS licensing Role on Windows Server?
Install RDS Licensing Role
1. Login to Windows Server → Search and Open “Server Manager“.
2. Click on “Add Roles and Features“.
3. In the Installation Type section, select Role-based or feature-based installation → Next.
4. In Server Selection, select your Windows Server; if your server is configured in the network, then select the particular server from the list to process the installation → Next.
5. In the Server Roles, select Remote Desktop Services → Click on Next.
6. Skip to Role Services → Select Remote Desktop Licensing → Click on Next.
7. Finally, Click on Install.
8. Congratulations! You have successfully installed Remote Desktop Role Licensing.
Now, you can manage the RDS service using the Remote Desktop Licensing Manager console (licmgr.exe).
Activating the RDS License Server
1. First, search and open Remote Desktop Licensing Manager (licmgr.exe).
2. Expand All Server → Right–click on the RDS Server → Click on Active Server.
3. As soon as you click on Active Server, it will start the activation setup wizard, which will guide you through the activation. Suppose your windows server is directly connected to the internet. In that case, windows will directly get connected to the Microsoft servers to activate the RDS License Server, or else it will guide you through the procedure to activate the RDS license server using a web browser or phone → Click on Next.
4. Our windows server is connected to the internet so we will select the Automatic connection → Click on Next.
5. Enter the company information (First Name, Last Name, Company Name, Company Email Address, Address → Click on Next.
6. Congratulations! You have successfully activated the RDS license server.