当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何增加KMS当前计数(计数不足)

作者:精品下载站 日期:2024-12-14 22:50:49 浏览:14 分类:玩电脑

如何增加KMS当前计数(计数不足)


在我们的博客上,我们已经提供了有关使用密钥管理服务 (KMS) 安装、配置和激活 Microsoft 产品(MS Office 和 Windows)的信息。今天我们将了解一下KMS激活计数器的概念,考虑如何统计客户端激活数量以及手动增加KMS激活请求计数的方法。

了解 KMS 激活

让我们首先回到 KMS 批量激活的理论基础知识。 KMS 激活常见问题解答一文详细介绍了 Microsoft KMS 许可的总体概述。

提示。还建议阅读我们网站上的以下文章:

  • 在 Windows Server 2022/2019 上安装 KMS 服务器

  • MS Office 2016/2013 的 KMS 激活

根据 Microsoft 批量许可计划,一个软件包中的最小许可证数量为 25 个。每个批量许可客户都会获得一个特殊的 CSVLK 密钥(或 KMS 主机密钥),用于激活内部公司 KMS 服务器。内部客户端(Windows 和 MS Office)可以借助 KMS 服务器在此服务器上激活,而无需通过 Internet 联系 Microsoft 的激活服务器。

激活错误 0xC004F038:您的 KMS 报告的计数不足

但是,安装和激活后,KMS 服务器将不会激活与其联系的客户端。如果您尝试在新的 KMS 上激活操作系统(本例中为 Windows 7 Pro),您会收到错误消息:

激活 Windows 7 专业版

0xc004f038:软件授权服务报告无法激活计算机。您的密钥管理服务 (KMS) 报告的计数不足。请联系您的系统管理员。

[玩转系统] 如何增加KMS当前计数(计数不足)

问题在于,KMS 服务器有一个所谓的激活计数(kms 计数器),该值在收到来自网络客户端的每个激活请求后会递增。当访问时,KMS服务器为每个客户端分配一个唯一的标识符CMID(客户端机器标识),并将其放入本地数据库(缓存)中。在这种情况下,接收请求的计算机的操作系统不会立即激活。这些激活请求会累积在服务器上的内部 KMS 缓存中。直到 KMS 数据库中过去 30 天内收到的激活请求超过某个最小阈值时,才会发生这种情况。该阈值为服务器操作系统的激活请求数为 5 个,桌面 Windows 操作系统的激活请求数为 25 个(桌面/服务器操作系统的激活阈值是独立的,即如果 KMS 计数的值超过客户端操作系统的激活请求数为 25,则该服务器将不会激活服务器操作系统,直到这些平台的激活请求数达到 5)。如果客户端在 30 天内没有联系 KMS 激活服务器,则会自动从 KMS 数据库中删除,并且 KMS 激活计数器减 1。

您可以使用以下命令获取特定计算机上的 CMID 值:

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

[玩转系统] 如何增加KMS当前计数(计数不足)

您可以通过运行 sysprep 或使用以下命令来重置当前的 CMID:

slmgr /rearm 

(需要重新启动)。

任何时候,可以使用以下命令查看KMS服务器收到的激活请求总数:

slmgr /dli

在此示例中,KMS 服务器上的 KMS 计数器值(当前计数)为 50。

注意。 KMS 服务器仅缓存最后 50 个 CMID(在这种情况下,服务器上的 KMS 客户端数量可能远远超过 50 个)。

[玩转系统] 如何增加KMS当前计数(计数不足)

要获取计数器的准确值,请在 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当前计数(计数不足)

KMS 客户端激活周期为180 天,每 7 天(默认设置为 7 天,可以使用命令 slmgr.vbs /sri 进行更改)客户端会尝试续订激活(接下来的 180 天)。如果客户端在 180 天内没有续订激活,KMS 服务器将从数据库中删除客户端的 CMID 并减少激活计数器。客户的操作系统在 180 天内仍然处于激活状态。 180天内未在KMS服务器上续订激活的客户端将进入宽限期模式。

如果您尝试在KMS服务器上激活客户端操作系统并且计数没有增加,可能是由以下原因引起的:

  1. 复制 CMID(通常在克隆操作系统时发生);

  2. 网络中有多于一台 KMS 服务器。默认情况下,客户端可以使用特殊的 DNS 记录 - srv _vlmcs._tcp 自动查找域中的 KMS 服务器(您可以使用以下命令获取服务器的名称:

    nslookup -type=srv _vlmcs._tcp

    )。您可以手动指定KMS服务器名称,如下所示:

    slmgr /skms kms_server.a-d.site:1688

    );

  3. 客户端上指定的密钥无效。例如,指定 MAK/零售密钥,而不是公共 GVLK(通用批量许可证密钥),或者与操作系统不对应的密钥。

增加 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

运行increase_kms_count.bat:


@echo off
set skms=kms_server.a-d.site
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创建一个新的VM(不要激活它,也不要输入GVLK密钥,最好暂时断开网络连接);

  2. 在 VM 桌面上创建以下 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.a-d.site
    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. 将VM回滚到之前的状态;

    [玩转系统] 如何增加KMS当前计数(计数不足)

  7. 按照您要在 KMS 服务器上添加的激活请求的数量执行步骤 5、6 多次。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯