Поиск по сайту:

Как увеличить текущее количество KMS (количество недостаточно)


В нашем блоге мы уже размещали информацию об установке, настройке и активации продуктов Microsoft (MS Office и Windows) с помощью службы управления ключами (KMS). Сегодня мы рассмотрим концепцию счетчика активаций KMS, рассмотрим, как подсчитывать количество активаций клиента и способы ручного увеличения количества запросов на активацию KMS.

Общие сведения об активации KMS

Вернемся сначала к теоретическим основам объемной активации KMS. Большой обзор лицензирования Microsoft KMS подробно описан в статье Часто задаваемые вопросы по активации KMS.

Совет. Также желательно прочитать следующие статьи на нашем сайте:

  • Установка KMS-сервера на Windows Server 2022/2019

  • KMS-активация для MS Office 2016/2013

Согласно программе корпоративного лицензирования Microsoft минимальное количество лицензий в одном пакете составляет 25. Каждый клиент корпоративного лицензирования получает специальный ключ CSVLK (или ключ хоста KMS), который используется для активации внутреннего корпоративного KMS. сервер. Внутренние клиенты (как Windows, так и MS Office) можно активировать на этом сервере с помощью KMS-сервера без необходимости обращаться к серверам активации Microsoft через Интернет.

Ошибка активации 0xC004F038: количество, сообщенное вашим KMS, недостаточно.

Однако сразу после установки и активации KMS-сервер не будет активировать обратившихся к нему клиентов. Если вы попытаетесь активировать свою ОС (в данном примере Windows 7 Pro) на новом KMS, вы получите сообщение об ошибке:

Активация Windows 7, Профессиональная версия

0xc004f038: Служба лицензирования программного обеспечения сообщила, что компьютер не удалось активировать. Число, сообщенное вашей службой управления ключами (KMS), недостаточно. Пожалуйста, свяжитесь с вашим системным администратором.

Дело в том, что на KMS-сервере есть так называемый счетчик активации (счётчик кмс), значение которого увеличивается после получения каждого запроса на активацию от сетевого клиента. При доступе сервер KMS присваивает каждому клиенту уникальный идентификатор CMID (идентификатор клиентского компьютера) и помещает его в локальную базу данных (кэш). В этом случае ОС компьютера, с которого поступил запрос, активируется не сразу. Эти запросы активации накапливаются во внутреннем кеше KMS на сервере. Это происходит до тех пор, пока в базе данных KMS не будет преодолен определенный минимальный порог запросов на активацию, полученных за последние 30 дней. Этот порог составляет 5 запросов активации от серверных ОС и 25 запросов активации от настольных ОС Windows (пороги активации для настольных/серверных ОС независимы, т.е. если значение счетчика KMS превысило 25 запросов активации от клиентских ОС, данный сервер не будет активировать серверные ОС до тех пор, пока количество запросов на активацию от этих платформ не достигнет 5). Если клиент не обращается к серверу активации KMS в течение 30 дней, он автоматически удаляется из базы данных KMS, а счетчик активации KMS уменьшается на единицу.

Получить значение CMID на конкретном компьютере можно с помощью следующей команды:

Get-WmiObject -class SoftwareLicensingService -ComputerName salarypc121 | Select-object ClientMachineID

Вы можете сбросить текущий CMID, запустив sysprep или используя команду:

slmgr /rearm 

(нужна перезагрузка).

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

slmgr /dli

В этом примере значение счетчика KMS (текущий счетчик) на сервере KMS равно 50.

Примечание. Сервер KMS кэширует только последние 50 CMID (при этом количество клиентов KMS на сервере может быть существенно больше 50).

Чтобы получить точное значение счетчика, выполните на KMS-сервере следующую команду:

cscript slmgr.vbs /dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7
Key Management Service cumulative requests received from clients
Total requests received: 2599

Это означает, что этот KMS-сервер получил 2599 запросов на активацию от клиентов.

Срок активации клиента KMS составляет 180 дней, и каждые 7 дней (по умолчанию установлено 7 дней, его можно изменить командой slmgr.vbs /sri) клиент пытается продлить активацию (для следующие 180 дней). Если в течение 180 дней клиент не продлил активацию, KMS-сервер удаляет CMID клиента из базы данных и уменьшает счетчик активаций. ОС клиента все равно активировалась в течение 180 дней. Клиент, который не продлил активацию на KMS-сервере в течение 180 дней, переходит в режим льготного периода.

Если при попытке активировать клиентскую ОС на KMS-сервере счетчик не увеличивается, это может быть вызвано следующими причинами:

  1. Дублирование CMID (обычно происходит при клонировании ОС);

  2. Более одного KMS-сервера в сети. По умолчанию клиенты могут автоматически найти KMS-сервер в домене с помощью специальной DNS-записи — srv _vlmcs._tcp (имя сервера можно получить с помощью команды:

    nslookup -type=srv _vlmcs._tcp

    ). Вы можете вручную указать имя сервера KMS следующим образом:

    slmgr /skms kms_server.active-directory.ru:1688

    );

  3. На клиенте указан неверный ключ. Например, вместо общедоступного GVLK (Generic Volume License Key) указан MAK/retail key или ключ, не соответствующий операционной системе.

Скрипт для увеличения текущего счета сервера KMS

В некоторых случаях, даже если VLC куплен, сложно сразу найти необходимое количество клиентов для преодоления порога активации KMS-сервера (особенно актуальна проблема для небольших или изолированных сетей). При попытке клиента активироваться на сервере в этом случае появляется ошибка 0xC004F038.

В этом случае администратор начинает задумываться об увеличении счетчика KMS-активаций вручную. Однако не все так просто… Ни sysprep, ни смена MAC-адреса сетевой карты не помогут обмануть KMS-сервер. В качестве довольно популярного варианта предлагается создать недостающее количество виртуальных машин и активировать их на KMS-сервере (виртуальные машины должны быть уникальными). Однако этот метод достаточно трудоемкий и требует поддержания работоспособности всех этих машин (или их перераспределения или включения каждые 180 дней).

В качестве более простой альтернативы мы рекомендуем вам использовать следующий скрипт cmd, который позволяет увеличить количество активаций на сервере KMS. Установите необходимую версию ОС (в данном примере это Windows 7 Professional), создайте каталог и скопируйте в него следующий BAT-файл. В той же папке создайте два пустых файла с именами:

7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0
7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0

Запустите увеличения_kms_count.bat:


@echo off
set skms=kms_server.active-directory.ru
for %%i in (. . . . . . . . . . . . . . . . . . . . . . . . . .) do call :Act %skms%
slmgr /ato
sc stop sppsvc
goto :end
:Act
sc stop sppsvc
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0" "%systemroot%\system32\*" /H /R /K /Y
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0" "%systemroot%\system32\*" /H /R /K /Y
sc start sppsvc
cscript.exe "%systemroot%\system32\slmgr.vbs" /skms %1
ping 127.0.0.1 -n 5 > nul
cscript.exe "%systemroot%\system32\slmgr.vbs" /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
cscript.exe "%systemroot%\system32\slmgr.vbs" /ato
sc stop sppsvc
:end

Количество точек в строке 3 — необходимое количество запросов к KMS-серверу (в данном примере мы моделируем доступ 25 уникальных клиентов)

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

Важно. Не запускайте этот скрипт на самом KMS-сервере! В противном случае вам потребуется повторно активировать KMS-сервер (допускается только 6 попыток активации одного ключа VLC).

После выполнения скрипта проверьте счетчик KMS:

slmgr /dli

Значение текущего счетчика должно увеличиться на 25. После этого KMS-сервер активирует все обращающиеся к нему настольные системы (будь то Windows 7, 8 или Windows 10). В дальнейшем этот скрипт (если реальных клиентов недостаточно) следует запускать каждые 30 дней, так как количество активаций уменьшится, если не будет запросов на активацию к серверу.

Как увеличить количество активаций с помощью снимков виртуальной машины

Если приведенный выше скрипт не помог вам увеличить количество активаций на KMS-сервере, вы можете увеличить значение счетчика, используя технологию моментальных снимков виртуальной машины в Hyper-V/VMWare. Алгоритм следующий:

  1. Создайте новую ВМ с Windows 10 (не активируйте ее и не вводите ключ GVLK, лучше всего временно отключить ее от сети);

  2. Создайте следующие два сценария на рабочем столе виртуальной машины, один из которых сбрасывает CMID и меняет имя хоста. Второй выполняет активацию ОС.Rearm.bat

    start “cmd /c slmgr /rearm" timeout /t 15 /nobreak > NUL
    wmic computersystem where name="%COMPUTERNAME%" call rename name="vmpc-%random%"
    shutdown /r /t 0 kms_activate.bat
    set skms= kms_server.active-directory.ru
    sc start sppsvc
    script.exe "%systemroot%\system32\slmgr.vbs" /skms %1
    cscript.exe "%systemroot%\system32\slmgr.vbs" /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
    cscript.exe "%systemroot%\system32\slmgr.vbs" /ato
  3. Поместите скрипт kms_activate.bat в автозагрузку Windows;

  4. Создайте снимок виртуальной машины;

  5. Запустите сценарий Rearm.bat с правами администратора. Виртуальная машина перезагрузится и активируется на KMS-сервере;

  6. Откат ВМ к предыдущему состоянию;

  7. Выполните шаги 5 и 6 столько раз, сколько запросов активации вы хотите добавить на KMS-сервер.

Статьи по данной тематике