企业客户将其密钥管理服务(KMS)设置为部署过程的一部分,因为它允许他们在环境中使用简单、直接的过程来激活 Windows。 通常,设置 KMS 主机后,KMS 客户端会自动连接到主机并自行激活。 但是,有时该过程无法按预期工作。 本文逐步讲解如何排查可能遇到的任何问题。
有关事件日志条目和 slmgr.vbs 脚本的详细信息,请参阅 批量激活技术参考。
开始对 KMS 进行故障排除的位置
让我们快速回顾一下 KMS 激活的工作原理。 KMS 是客户端服务器模型,与动态主机配置协议(DHCP)有一些相似之处。 但是,KMS 会启用产品激活,而不是向客户端针对其请求发出 IP 地址。 KMS 也是续订模型,客户端尝试定期重新激活。 有两个角色: KMS 主机 和 KMS 客户端。
- KMS 主机运行激活服务,并在环境中进行激活。 若要配置 KMS 主机,必须从批量许可证服务中心(VLSC)安装 KMS 密钥,然后激活该服务。
- KMS 客户端是在环境中部署并需要激活的 Windows 操作系统 (OS)。 KMS 客户端可以运行使用批量激活的任何版本的 Windows。 KMS 客户端附带预安装的密钥,称为 通用批量许可证密钥(GVLK) 或 KMS 客户端安装密钥。 GVLK 的存在使系统成为 KMS 客户端。 KMS 客户端使用域名系统(DNS)SRV 记录(
_vlmcs._tcp)来标识 KMS 主机。 接下来,客户端会自动尝试发现并使用此服务自行激活。 在 30 天的开箱即用宽限期期间,他们尝试每两小时激活一次。 激活 KMS 客户端后,它们尝试每隔七天续期一次激活。
从故障排除的角度来看,可能需要同时查看主机和客户端,以确定问题发生的原因。
KMS 主机上的故障排除
在故障排除期间检查 KMS 主机时,应查看以下两个方面:
- 使用
slmgr.vbs命令行提示符中的命令检查主机软件许可证服务的状态。 - 检查事件查看器中是否有与许可或激活相关的事件。
Slmgr.vbs 和软件许可服务
可以使用 slmgr.vbs 命令行工具和事件查看器来排查 KMS 客户端上的激活问题。 若要查看软件许可服务的详细输出,请打开提升的命令提示符窗口或 PowerShell 窗口,然后运行 slmgr.vbs /dlv。 以下屏幕截图显示了 KMS 客户端和 KMS 主机的此命令的结果:
下面是在故障排除时应注意的输出中的一些变量:
版本信息位于
slmgr.vbs /dlv输出的顶部。 版本信息对于确定服务是否是最新的非常有用。 确保所有内容都是最新的,因为 KMS 服务支持不同的 KMS 主机密钥。 可以使用此数据来评估当前正在使用的版本是否支持尝试安装的 KMS 主机密钥。 有关更新的详细信息,请参阅 Windows Vista 和 Windows Server 2008 的更新,以扩展对 Windows 7 和 Windows Server 2008 R2 的 KMS 激活支持。“名称”指示在 KMS 主机系统上运行的 Windows 版本。 可以使用此信息来排查涉及添加或更改 KMS 主机密钥的问题。 例如,可以使用此信息来验证 OS 版本是否支持你尝试使用的密钥。
说明显示当前安装的密钥。 使用此字段验证首次激活服务的密钥是否为已部署的 KMS 客户端的正确密钥。
许可证状态显示 KMS 主机系统的状态。 该值应 获得许可。 任何其他值意味着应重新激活主机。
当前计数显示介于 0 和 50 之间的计数。 计数是 OS 之间的累积计数,指示在 30 天内 尝试激活的有效系统数。
如果计数为 0,可能是服务最近刚被激活,或是没有有效的客户端连接到 KMS 主机。
无论环境中存在多少有效系统,计数都不会增加超过 50。 计数被设置为仅缓存由 KMS 客户端返回的许可证策略最大值的两倍。 最大策略由 Windows 客户端操作系统设置,这需要来自 KMS 主机的 25 或更大计数才能自行激活。 因此,KMS 主机可以拥有的最高计数是 50 或 2 x 25。 在仅包含 Windows Server KMS 客户端的环境中,KMS 主机上的最大计数为 10。 此限制是因为 Windows Server 版本的阈值为 5 (2 x 5 或 10)。
当环境具有激活的 KMS 主机和足够的客户端时,与计数相关的常见问题发生,但计数不会超过一个。 出现此问题时,这意味着部署的客户端映像未正确配置,因此系统没有唯一的客户端计算机 ID(CMID)。 如需了解更多信息,请参阅以下文章:
计数可能不会增加的另一个原因是环境中存在过多的 KMS 主机,并且计数分布在所有这些主机上。
侦听端口。 与 KMS 的通信使用匿名 RPC。 默认情况下,客户端使用 1688 TCP 端口连接到 KMS 主机。 请确保在 KMS 客户端和 KMS 主机之间打开此端口。 可以在 KMS 主机上更改或配置端口。 在通信期间,KMS 主机将端口指定发送到 KMS 客户端。 如果更改 KMS 客户端上的端口,则当客户端与主机联系时,端口设置将被覆盖。
我们经常被问及输出中slmgr.vbs /dlv部分。 通常,此数据对故障排除没有帮助。 KMS 主机会持续记录尝试激活或重新激活的每个 KMS 客户端的状态。 失败的请求表示 KMS 主机不支持某些 KMS 客户端。 例如,如果 Windows 7 KMS 客户端尝试针对使用 Windows Vista KMS 密钥激活的 KMS 主机激活,激活将失败。
“具有许可证状态的请求”行描述了所有可能的许可证状态,包括过去和现在。 从故障排除的角度来看,仅当计数未按预期增加时,此数据才相关。 在这种情况下,应看到失败的请求数增加。 若要解决此问题,应检查用于首次激活 KMS 主机系统的产品密钥。 此外,请注意,仅当重新安装 KMS 主机系统时,累积请求值才会重置。
KMS 事件 ID
以下部分介绍应熟悉的客户端事件,以帮助更有效地排查潜在问题。 当 KMS 客户端成功激活或重新激活时,客户端会记录事件 ID 12288 和事件 ID 12289。
事件 ID 12288:
以下屏幕截图显示了 KMS 事件日志中的事件 ID 12288 条目段:
如果只看到事件 ID 12288 且没有相应的事件 ID 12289,则 KMS 客户端无法访问 KMS 主机、KMS 主机未响应或客户端未收到主机的响应。 在这些情况下,必须验证 KMS 主机是否可发现,以及 KMS 客户端是否可以联系它。
事件 ID 12288 中最相关的信息是 信息 字段中的数据。 例如,“信息”字段显示客户端的当前状态,以及客户端尝试激活时使用的 FQDN 和 TCP 端口。 可以使用 FQDN 来解决 KMS 主机上的计数不增加的问题。 例如,如果客户端可用的 KMS 主机过多(合法或不受支持的系统),则计数可能会分发到所有这些主机上。
未成功的激活并不总是意味着客户端具有事件 ID 12288,而不是 12289。 失败的激活或重新激活也可能同时包含这两个事件。 在这种情况下,必须检查第二个事件以验证失败原因。
事件 ID 12289:
以下屏幕截图显示了 KMS 事件日志中的事件 ID 12289 条目段:
事件 ID 12289 的“信息 ”部分提供以下信息:
激活标志,指示激活成功(1)还是失败(0)。
KMS 主机上的当前计数,当客户端尝试激活时显示 KMS 主机上的计数值。 如果激活失败,可能是因为此客户端 OS 的计数不足,或者环境中没有足够的系统来生成计数。
KMS 客户端续订要求
KMS 激活在续订模型中运行,其中每个客户端设备必须至少每 180 天连接到 KMS 主机服务器一次才能保持激活。 默认情况下,KMS 客户端尝试每隔七天续订激活一次。 续订成功后,激活有效期将重置至 180 天。
出于任何原因,如果未满足续订要求,系统会在 180 天续订前 30 天收到 Toast 通知。 续订 Toast 通知也会显示在激活窗格中:
KMS 客户端续订要求疑难解答
只有在公司拥有或管理的设备上时,您才会收到此通知。 如果不正确,请从 Microsoft Store 获取零售密钥。
如果使用公司拥有的设备或托管设备,请与 IT 管理员联系。 下面是你可能会收到此消息的一些可能原因:
KMS 主机已停用:IT 管理员必须使用 KMS 服务器配置 KMS 客户端版本。 请参阅 使用密钥管理服务激活。
监听不同端口:与 KMS 的通信使用匿名 RPC。 默认情况下,客户端使用 TCP 端口 1688 连接到 KMS 主机。 确保此端口在 KMS 客户端和 KMS 主机之间打开。 可以通过具有高级安全性的 Windows 防火墙在 KMS 主机上配置端口。
验证 DNS 配置:默认情况下,KMS 客户端使用自动发现过程查询 DNS 以获取服务器列表。 若要了解详细信息,请参阅 有关排查与 DNS 相关的激活问题的指南。
支持要求什么?
如果在故障排除后激活未按预期工作,可以联系 Microsoft支持人员 获取技术支持。 支持工程师通常要求以下信息:
-
slmgr.vbs /dlv来自 KMS 主机和 KMS 客户端系统的输出。 - 来自 KMS 主机(密钥管理服务日志)和 KMS 客户端系统(应用程序日志)的事件日志。