Терминальный сервер работает 120 дней, а потом перестаёт пускать людей. Это не сбой и не вирус — это истёк льготный период, а лицензирование никто не настроил. Ситуация настолько типовая, что мы встречаем её несколько раз в год, и всегда в самый неподходящий момент. Разберём, как устроено лицензирование RDS, что выбрать и как чинить, когда уже случилось.
Лицензирование RDS: CAL на пользователя и на устройство, льготный период и его финал
Что вообще лицензируется
Право подключаться к терминальному серверу лицензируется отдельно от самой Windows Server. Это два независимых счёта.
Лицензия Windows Server даёт право запустить операционную систему. Она не даёт права работать в ней через удалённый рабочий стол больше чем двум администраторам одновременно — эти два подключения предназначены для администрирования, а не для работы пользователей.
Чтобы подключались пользователи, нужны клиентские лицензии RDS — те самые CAL. Они покупаются отдельно, в количестве по числу пользователей или устройств.
Технически CAL — это не файл и не ключ на сервере. Это записи в базе сервера лицензирования, который выдаёт их клиентам и ведёт учёт.
Здесь кроется частое недоразумение. Администратор ставит роль RDS, всё работает, пользователи подключаются, и складывается впечатление, что лицензии не нужны. Работает это благодаря льготному периоду, о котором ниже, и заканчивается ровно через 120 дней.
User CAL против Device CAL
Два типа лицензий с разной логикой выдачи.
User CAL привязывается к учётной записи пользователя. Один человек может подключаться с любого количества устройств: с рабочего компьютера, из дома, с планшета.
Device CAL привязывается к устройству. С одного компьютера могут работать любое количество разных людей.
Правило выбора простое: считаем, чего меньше.
| Ситуация | Что выгоднее |
|---|---|
| 30 сотрудников, у каждого свой компьютер, часть работает из дома | User CAL |
| Сменная работа: 45 человек на 15 рабочих мест | Device CAL |
| Производство: терминалы в цеху, за которыми работают все подряд | Device CAL |
| Офис с ноутбуками и удалёнкой | User CAL |
Техническое различие, о котором стоит знать: Device CAL выдаются с ограниченным сроком и отзываются автоматически, а User CAL сервер лицензирования выдаёт бессрочно и отслеживает скорее в справочном режиме.
Практическое следствие: при режиме User CAL сервер не будет вам мешать, даже если фактическое число пользователей превысило купленное. Это не разрешение так делать — это означает, что контроль на вашей совести, и при проверке лицензионной чистоты вопросы будут.
При Device CAL перерасход упрётся в отказ: свободных лицензий нет, устройство не пускают.
Смешивать типы в одном развёртывании нельзя — режим задаётся один на всю ферму.
Льготный период: как он считается
После установки роли узла сеансов Windows даёт 120 дней работы без сервера лицензирования.
Три важных свойства этого периода.
Отсчёт идёт с момента установки роли, а не с первого подключения пользователя. Сервер, поднятый в январе и введённый в эксплуатацию в марте, исчерпает период в мае.
Период не продлевается. Способы сбросить счётчик правкой реестра циркулируют в сети, работают через раз и являются прямым нарушением условий лицензирования.
Финал жёсткий. В последний день пользователи получают сообщение о том, что нет доступных серверов лицензирования, и подключиться не могут. Не «предупреждение», а именно отказ.
Сколько осталось, можно посмотреть:
$rds = Get-WmiObject -Namespace root\CIMV2\TerminalServices `
-Class Win32_TerminalServiceSetting
$rds.GetGracePeriodDays()
Эту проверку стоит поставить в мониторинг на любом свежеразвёрнутом терминальном сервере с порогом тревоги дней в тридцать. Стоит минуту, а закрывает целый класс авральных ситуаций.
Отдельно отмечу: у нас в чек-листе развёртывания RDS настройка лицензирования стоит до передачи сервера в эксплуатацию. Именно потому, что 120 дней — достаточно долго, чтобы про задачу забыли все, включая того, кто её ставил.
Развёртывание сервера лицензирования
Порядок действий на три шага.
Установка роли. Ставится на любой сервер в домене, часто — на тот же, где брокер. На контроллер домена ставить не рекомендуется, но технически возможно.
Install-WindowsFeature RDS-Licensing, RDS-Licensing-UI
Активация. Выполняется через оснастку «Диспетчер лицензирования удалённых рабочих столов». Требует данных организации и связи с серверами активации Microsoft; при отсутствии интернета возможна активация по телефону или через веб-браузер с другой машины.
Установка пакетов лицензий. Там же, мастером, с указанием типа соглашения и номера.
После этого сервер лицензирования надо указать в развёртывании RDS и задать режим:
Set-RDLicenseConfiguration -LicenseServer lic.corp.local `
-Mode PerUser -ConnectionBroker rdcb.corp.local -Force
Для отдельно стоящего терминального сервера без фермы то же самое задаётся групповой политикой в разделе конфигурации компьютера, административные шаблоны, компоненты Windows, службы удалённых рабочих столов, узел сеансов, лицензирование. Два параметра: использовать указанные серверы лицензирования и задать режим лицензирования.
Ещё один шаг, который часто пропускают: в домене сервер лицензирования должен состоять в группе Terminal Server License Servers — иначе выдача User CAL с отслеживанием работать не будет корректно.
Add-ADGroupMember -Identity "Terminal Server License Servers" `
-Members (Get-ADComputer lic).SamAccountNameДиагностика: «нет доступных серверов лицензирования»
Самая частая ошибка, и причин у неё несколько.
Начинать надо с встроенной диагностики. В диспетчере лицензирования есть режим проверки, который показывает конкретную проблему, а не общее сообщение.
$diag = Get-WmiObject -Namespace root\CIMV2\TerminalServices `
-Class Win32_TSLicenseServer
$diag.GetActivationStatus()
# и полная диагностика узла
Get-WmiObject -Namespace root\CIMV2\TerminalServices `
-Class Win32_TerminalServiceSetting | Select-Object *Licens*
Типовые причины по частоте:
| Причина | Как проявляется | Что делать |
|---|---|---|
| Сервер лицензирования не указан | сразу после 120 дней | задать в развёртывании или GPO |
| Режим не задан | указан сервер, но режим Not Configured | задать PerUser или PerDevice |
| Режим не совпадает с типом CAL | куплены User, включён PerDevice | привести в соответствие |
| Сервер не активирован | роль стоит, лицензии не установлены | активировать, поставить пакеты |
| Нет в группе домена | User CAL не отслеживаются | добавить в Terminal Server License Servers |
| Сетевая недоступность | работало и перестало | проверить порт 135 и RPC |
| Кончились Device CAL | часть устройств не пускает | отозвать неиспользуемые или докупить |
Последняя строка про отзыв заслуживает пояснения. Device CAL можно отозвать вручную — например, если устройство списано. Отзывать разрешено не более 20 % от общего числа лицензий, и делается это в диспетчере лицензирования по конкретной записи.
Ещё одно место, куда стоит заглядывать: журнал событий на узле сеансов, источники TerminalServices-Licensing и TerminalServices-RemoteConnectionManager. Там сообщения гораздо конкретнее, чем то, что видит пользователь.
Кейс: 120 дней, которые истекли в пятницу вечером
Клиент пришёл к нам уже в состоянии аварии, поэтому история короткая и поучительная.
Компания оптовой торговли, 28 человек, терминальный сервер развернул предыдущий подрядчик в феврале. К нам обратились в пятницу в 18:40 с формулировкой «никто не может зайти, работаем в выходные, горит отгрузка».
Диагноз занял четыре минуты: льготный период истёк в этот день. Сервер был поднят 12 февраля, 120 дней вышли в июне.
Дальше начались особенности. Лицензий RDS у компании не было куплено вообще — ни одной. Предыдущий подрядчик развернул сервер, всё работало, вопрос лицензирования в проекте не поднимался.
Купить CAL в пятницу вечером и активировать за час было нереально.
Что мы сделали как временную меру: перевели критичных сотрудников на прямое подключение к серверу 1С тонким клиентом со своих рабочих машин. Три часа работы, восемь человек получили возможность отгрузить документы в выходные. Терминальный сервер при этом остался нерабочим.
В понедельник купили и установили 30 User CAL, ферма заработала штатно.
Разбор потом показал типичную картину разрыва ответственности. Подрядчик считал, что лицензии покупает клиент. Клиент считал, что раз всё работает, значит всё куплено. Никто не проверял. Уведомлений о приближении конца льготного периода Windows не шлёт — они появляются в журнале событий, куда никто не смотрит.
После этого случая мы добавили две вещи в стандартный чек-лист приёма клиента на поддержку. Первая: проверка оставшихся дней льготного периода на всех терминальных серверах — команда выполняется за секунды. Вторая: сверка числа купленных CAL с фактическим числом пользователей.
За два года эта проверка сработала у нас четыре раза, из них дважды — с запасом меньше трёх недель. Каждый раз это была компания, которая была уверена, что с лицензиями у неё всё в порядке.
Что держать под контролем постоянно
Лицензирование RDS — область, где проблемы не развиваются постепенно. Всё работает, работает, работает, а потом в один день не работает совсем. Поэтому контроль тут не про производительность, а про раннее предупреждение.
Четыре вещи, которые мы держим на мониторинге у клиентов с терминальными серверами.
Оставшиеся дни льготного периода на каждом узле сеансов. Порог тревоги — 30 дней. Актуально только для свежих развёртываний, но именно там и происходят аварии.
Число выданных лицензий против купленных. При Device CAL это прямой предвестник отказа: когда свободных остаётся меньше пяти, пора либо докупать, либо отзывать лицензии списанных устройств.
Get-WmiObject -Namespace root\CIMV2\TerminalServices `
-Class Win32_TSLicenseKeyPack |
Select-Object ProductVersion, TypeAndModel, TotalLicenses,
IssuedLicenses, AvailableLicenses
Доступность сервера лицензирования с каждого узла сеансов. Проверяется штатным методом, возвращающим состояние: значение 0 означает, что всё в порядке.
(Get-WmiObject -Namespace root\CIMV2\TerminalServices `
-Class Win32_TerminalServiceSetting).GetSpecifiedLicenseServerList()
Записи в журнале событий от источника TerminalServices-Licensing с уровнем «предупреждение» и выше.
Все четыре проверки — это несколько строк в системе мониторинга и полчаса на настройку. Стоимость аварии, которую они предотвращают, измеряется остановкой всего офиса на непредсказуемое время: купить и активировать лицензии в пятницу вечером или в новогодние праздники не получится ни за какие деньги.
И ещё одна организационная мера, которая работает лучше любой технической. При приёме терминального сервера от подрядчика или при переходе на новое обслуживание письменно фиксируйте: сколько CAL куплено, какого типа, на кого оформлены, где лежат документы. Один абзац в акте. Именно его отсутствие превращает техническую мелочь в аварию.
Частые вопросы
Нужны ли CAL, если к серверу подключаются два администратора?
Нет. Windows Server позволяет два административных подключения по удалённому рабочему столу без клиентских лицензий RDS. Но это право предназначено для администрирования, а не для работы пользователей — как только в терминале работают сотрудники, нужны CAL.
Что выбрать — User CAL или Device CAL?
Считайте, чего меньше. Если сотрудников больше, чем рабочих мест, — при сменной работе или на производственных терминалах — выгоднее Device CAL. Если у каждого свой компьютер и часть людей работает ещё и из дома, выгоднее User CAL.
Можно ли продлить льготный период в 120 дней?
Штатных способов нет. Правки реестра, циркулирующие в сети, работают нестабильно и нарушают условия лицензирования. Отсчёт при этом идёт с момента установки роли, а не с первого подключения пользователя, поэтому запас обычно меньше, чем кажется.
Почему сервер пишет «нет доступных серверов лицензирования»?
Чаще всего сервер лицензирования не указан в конфигурации или не задан режим лицензирования. Следующие по частоте причины — несовпадение режима с типом купленных CAL и неактивированный сервер лицензирования. Конкретную причину показывает диагностика в диспетчере лицензирования.



Оставить комментарий