Устранение проблем с лицензированием терминального сервера (часть 2)

Опубликовано: 23 Апреля, 2023

  • Устранение проблем с лицензированием терминального сервера (часть 1)

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

Нет доступных лицензий на серверах лицензий

Другой распространенной проблемой является просто нехватка лицензий. Чаще всего это происходит из-за неадекватного планирования надлежащего количества подключений к ферме.

Доступные лицензии можно просмотреть в программе лицензирования серверов терминалов, так что это первое место, где нужно искать. Различные пулы или типы лицензий будут отображаться вместе с общим количеством лицензий в каждом пуле, выделенным количеством и количеством оставшихся. Если дважды щелкнуть конкретный пул, отобразятся дополнительные сведения, включая имя компьютера, которому он был выдан, когда он был выдан и когда истечет срок действия лицензии CAL.

Два общих идентификатора события, когда сервер лицензий доступен, но на нем нет лицензий, включают:

Идентификатор события

Источник

Описание

1000

ТерминСервис

Не удалось получить лицензию для пользователя <пользователь>, домен <домен>

1004

ТерминСервис

Терминальный сервер не может выдать клиентскую лицензию.

1011

ТерминСервис

Клиент служб терминалов <имя_клиента> был отключен, так как срок действия его временной лицензии истек.

Идентификаторы событий 1000 и 1004 упоминались ранее; однако событие с идентификатором 1011 может быть зарегистрировано, если у клиента есть временная клиентская лицензия и срок ее действия истек. Если это происходит, то количества лицензий недостаточно для обработки фактического количества подключений. Чтобы решить эту проблему, приобретите и добавьте дополнительные клиентские лицензии для устройств.

Использование ЛСРЕПОРТ

LSREPORT, еще одна замечательная утилита в наборе ресурсов, может отображать подробную информацию о статусе выпуска клиентских лицензий в базе данных лицензирования. Следующие аргументы командной строки могут использоваться с LSREPORT:

/F имя файла
Имя выходного файла

/D [начало] [конец]
Только лицензии от начала до конца


Только временные лицензии

/Вт
Включить HardwareID в отчет

список серверов
Список серверов лицензий

Использование: LSREPORT /W /F c: eport.txt server1 server2


Рисунок 2: LSREPORT

В некоторых случаях клиент может арендовать более одной клиентской лицензии, тем самым преждевременно израсходовав все клиентские лицензии в базе данных, как показано в приведенном выше примере. Это типично, когда на клиенте удален ключ MSLicensing. В большинстве случаев новый клиент может подключаться с использованием временной клиентской лицензии до тех пор, пока выделенная (но неиспользованная) клиентская лицензия не будет возвращена в пул в результате обычного истощения. Более подробная информация о ключе MSLicensing будет представлена в четвертой части.

Среды смешанного лицензирования

Существует известная проблема со службой лицензирования в Windows Server 2003, которая затрагивает среды со смешанным лицензированием — те, в которых есть серверы лицензий Windows 2000 и Windows Server 2003. Обычно серверы лицензий Windows 2000 обнаруживают наличие клиентских лицензий для каждого устройства на серверах лицензий на базе Windows Server 2003, чтобы они могли пересылать невыполненные запросы на эти серверы лицензий. Однако ошибка в версии LServer.exe для Windows Server 2003 препятствует этому. Это может привести к отказу принять соединение и может показаться прерывистым. Как правило, этому вопросу сопутствуют следующие обстоятельства:

  • Ваша среда состоит из комбинации серверов лицензий Windows 2000 и Windows Server 2003.
  • Серверы лицензий на базе Windows 2000 Server не имеют доступных постоянных клиентских лицензий.
  • Серверы лицензий на базе Windows Server 2003 имеют доступные постоянные клиентские лицензии.
  • Подключаемый клиент работает под управлением более старой версии Windows, например Microsoft Windows 98.

Эта проблема была устранена в Windows Server 2003 SP2, но Microsoft предлагает исправление для решения проблемы в Windows Server 2003 SP1 и более ранних версиях; более подробная информация доступна в Microsoft KB Q911288. Обратитесь в службу поддержки продуктов Майкрософт, чтобы получить исправление.

Терминальные серверы в неправильном режиме лицензирования

Это еще одна распространенная проблема. До Windows Server 2003 SP1 он был намного популярнее, так как в процессе добавления и удаления программ была ошибка. Если вы добавите компонент Windows в любое время после установки служб терминалов, для параметра реестра PolicyAcOn будет установлено недопустимое значение 0, что приведет к возврату сервера в режим для каждого устройства. Эта проблема была исправлена в SP1.

Эти два режима до сих пор, кажется, смущают многих людей. Терминальные серверы Windows Server 2003 могут иметь один из двух режимов лицензирования — на пользователя или на устройство. Выбор зависит от того, кто или что арендует клиентские лицензии, или, что более важно, какие клиентские лицензии были приобретены. Клиентские лицензии «на устройство» сдаются в аренду машинам или устройствам, а клиентские лицензии «на пользователя» выделяются именованным пользователям.

Клиентские лицензии для каждого устройства явно сдаются в аренду клиентам и записываются в базу данных сервера лицензий. При первом подключении клиентам выдается временная лицензия на доступ, которая действительна в течение 90 дней. При втором подключении клиента и при каждом последующем подключении до успешного завершения сервер терминалов будет пытаться обновить временную клиентскую лицензию до постоянной. Постоянные клиентские лицензии сдаются в аренду на ограниченный период времени (до 89 дней) и имеют срок действия.

Лицензии CAL на пользователя не сдаются в аренду, поскольку в настоящее время не существует механизма отслеживания, позволяющего привязать клиентскую лицензию служб терминалов к учетной записи пользователя. Таким образом, терминальные серверы в режиме для каждого пользователя только проверяют доступность сервера лицензий, но никогда не сдают клиентскую лицензию в аренду пользователю. Если сервер терминалов может связаться с сервером лицензий, он просто принимает соединение.

Важным моментом здесь является то, что действующий режим лицензирования определяется сервером терминалов, а не сервером лицензий или установленными клиентскими лицензиями. Если вы лицензируете службы терминалов в режиме «на пользователя» (выделяя клиентские лицензии на каждого именованного пользователя), убедитесь, что вы находитесь в соответствующем режиме и что он правильно установлен на всех серверах терминалов в вашей среде. Это можно настроить в программе настройки служб терминалов из средств администрирования в любое время и не требует перезагрузки или перезапуска служб.

Распространенными симптомами неправильного режима лицензирования являются записи в журнале событий с идентификатором 1000 или 1004 (описано ранее) или внезапная невозможность подключения клиентов. Если вы видите это только на одном терминальном сервере вне фермы, то обязательно поставьте галочку напротив режима лицензирования. Вы также можете автоматизировать процесс проверки или установки этого значения, создав сценарий для запроса значения в следующем разделе реестра:

Две допустимые записи: 2 для режима для каждого устройства и 4 для режима для каждого пользователя. Значение 0 указывает, что это было установлено в результате ошибки до SP1, отмеченной ранее.

Большие проблемы с базой данных лицензирования

Хотя это редкость, некоторые базы данных лицензирования серверов терминалов могут стать большими. Если размер базы данных достигает 80 МБ или более, могут возникнуть проблемы со службой лицензирования. Эта проблема обычно сопровождается следующим событием в журнале событий Windows:

Идентификатор события

Источник

Описание

43

TermServЛицензирование

Ошибка Work Manager Не удается запустить планировщик работ, код ошибки -1072167891

Существует известная проблема с базами данных лицензирования, размер которых превышает 80 МБ. Служба лицензирования использует механизм базы данных на базе Microsoft Jet, а транзакции, связанные с большой базой данных, могут занимать много памяти. Если транзакция зависает или выполняется в течение длительного периода времени (например, она не может быть завершена из-за переполнения диска), это может привести к тому, что Jet использует все хранилище версий, что приведет к сбою службы.

Если вам интересно, хранилище версий используется в базах данных на основе Jet в качестве «кэша» в памяти, используемого для хранения ожидающих транзакций до тех пор, пока они не будут записаны на диск.

Microsoft включила новый раздел реестра в Windows Server 2003, чтобы иметь возможность настраивать ресурсы памяти по умолчанию, связанные с хранилищем версий в транзакциях Jet. Если вы обнаружите, что у вас большая база данных и вы видите событие с идентификатором 43, найдите следующий ключ в реестре на сервере лицензий:

Добавьте новое значение с именем MaxVerPages (REG_DWORD) со значением данных 1024 (десятичное число).

Скорее всего, вы не столкнетесь с этой проблемой, за исключением очень больших развернутых серверов терминалов с несколькими сотнями узлов. Дополнительные сведения об этой проблеме см. в статье Microsoft KB Q310122.

Последние мысли

Всякий раз, когда возникают проблемы с подключением, всегда проверяйте журналы событий, поскольку они могут содержать ценную информацию. Я также считаю необходимым выполнить базовые тесты подключения, чтобы убедиться, что терминальные серверы могут связаться с сервером лицензий, и использовать имеющиеся в вашем распоряжении инструменты.

В третьей части мы рассмотрим некоторые малоизвестные проблемы, возникающие при лицензировании терминального сервера со стороны сервера, а в четвертой части мы рассмотрим проблемы с точки зрения клиента.

  • Устранение проблем с лицензированием терминального сервера (часть 1)