Microsoft KMS批量激活常见问题解答
KMS批量激活架构和功能
KMS基础结构包括由Microsoft激活的" KMS服务器"(一次在线或者通过电话执行此操作)和" KMS客户端",后者将其激活请求发送到KMS服务器。台式机和服务器Microsoft Oss和MS Office可以成为KMS服务器客户端。
KMS服务器是使用特殊的CSVLK密钥(KMS主机密钥)激活的,该文件可以由Microsoft批量许可站点(https://www.microsoft.com/Licensing/servicecenter/ default.aspx登录该站点,然后转到" Microsoft批量许可服务中心>许可证->关系摘要->产品密钥->复制" Windows Srv 2019 DataCtr/Std KMS"的KMS主机密钥)。在KMS服务器设置中指定了CSVLK密钥,并且已通过Internet在Microsoft服务器上激活了KMS服务器。 KMS服务器仅需要激活一次(如果要激活新的CSVLK密钥并支持最新的Windows版本,则需要重新激活KMS服务器)。
单个KMS服务器可以激活无限数量的KMS客户端。例如,即使Microsoft协议声明我们已经购买了100台台式机的许可,理论上我们也可以激活数千个Windows副本(当然,这将违反Microsoft许可协议,但是从技术上讲KMS服务器不会限制激活次数)。另外,请注意,有关执行的激活及其编号的信息不会由网络外部的KMS服务器传输。
KMS服务器可以激活不同域中的客户端以及工作组中的客户端。一台KMS服务器可以同时激活Windows的桌面版本以及Windows Server和Microsoft Office套件中的产品。
安装KMS服务器后,特殊的SRV(_VLMCS)
记录会在DNS中注册。任何域客户端都可以使用此DNS记录在AD域中查找KMS服务器的名称。例如,要在域corp.theitroad.local中手动找到KMS服务器名称,请运行以下命令:
nslookup -type=srv _vlmcs._tcp.corp.theitroad.local
_vlmcs._tcp.corp. theitroad.local SRV service location: priority = 0 weight = 0 port = 1688 svr hostname = ny-kms01.corp.theitroad.local ny-kms01.corp.theitroad.local internet address = 10.0.1.100
此示例显示KMS部署在ny-kms01服务器上,并在TCP端口1688上响应。
要激活KMS客户端(Windows或者Office),必须在其" GVLK"(通用批量许可密钥)上指定特殊的KMS公共密钥。指定GVLK之后,KMS客户端尝试在DNS中查找与KMS服务器相对应的SRV记录并被激活。
这是最新的Microsoft产品的通用KMS密钥(GVLK)列表:
- 适用于Windows 7/Windows Server 2008/2008 R2的GVLK
- 适用于Windows 8.1和Windows Server 2012 R2的GVLK
- 适用于Windows 10/Windows Server 2015的GVLK
- 适用于Windows 10 LTSC和Windows Server 2019的GVLK
- 适用于MS Office 2019和2015的GVLK
- 适用于MS Office 2013的GVLK
- 适用于MS Office 2010的GVLK
使用较新的KMS主机密钥激活的KMS服务器可以激活所有以前的Windows版本,反之亦然。例如,使用Windows Srv 2012 R2 DataCtr/Std KMS密钥激活的KMS服务器将无法激活Windows 10或者Windows Server 2015/2019.
要激活最新的Windows版本,我们需要获取一个新的CSVLK密钥并在KMS服务器上将其激活。
提示。作为KMS技术的扩展,应该提到另一种类型的MS批量激活方式"基于Active Directory的激活"(ADBA)。 ADBA允许自动激活运行Windows 8,Windows Server 2012和MS Office 2013(及更新版本)并加入AD域的客户端。在这种情况下,没有专用的KMS服务器主机,并且通过特殊的Active Directory扩展来执行激活(从容错的角度来看这很方便,但是如果我们需要激活不在域中的设备则不方便) 。
KMS服务器要求
- KMS主机是安装了"批量激活服务"角色的服务器(或者工作站)。在Windows Server 2019中,可以使用以下命令通过服务器管理器控制台或者PowerShell安装此角色:
Install-WindowsFeature -Name VolumeActivation -IncludeAllSubFeature –Include ManagementTool
- 我们需要在KMS主机上安装企业CSVLK密钥并在Microsoft中激活KMS服务器:
slmgr/ipk <kms_host_key_Windows_Server_2019> slmgr/ato
为了执行KMS服务器(仅执行一次),必须可以访问Microsoft网站。从端口80/443上的KMS服务器中获取。在隔离的环境中,可以通过电话激活KMS服务器(可以在phone.inf文件中找到我们所在国家/地区的Microsoft支持电话号码:
get-content C:\windows\System32\sppui\phone.inf
)。
- 客户端和防火墙上的KMS服务器之间必须打开端口1688.
- 如果满足以下最低KMS客户端数量(激活阈值)的要求,则可以使用KMS服务器激活Microsoft批量产品:
- Windows桌面操作系统:25
- Windows Server操作系统:5
- MS Office:5
提示。如有必要,可以使用脚本来增加KMS服务器上的激活计数器。
- 计算机必须将企业网络与KMS服务器连接,以至少每180天更新一次激活。 180天后,产品激活崩溃,Windows进入宽限期。默认情况下,KMS客户端计算机尝试每隔7天更新一次激活。如果我们需要至少每180天激活一次不使用KMS服务器连接到网络的设备,则建议使用MAK(多次激活)密钥。
- KMS不是消耗资源的服务,因此可以在任何服务器上安装此角色。 KMS不必高度可用。如果KMS服务器几个小时(甚至几天)不可用,则停机时间不会以任何方式影响。
Microsoft Office KMS服务器激活
要在KMS服务器上激活MS Office产品,必须安装特殊的" Microsoft Office Volume License Pack"。根据所使用的MS Office版本,我们需要下载并安装其他版本的volumelicensepack。
在KMS服务器上安装MS Office许可证包之后,需要安装个人Office CSVLK密钥并激活它。
有关MS Office激活的更多信息,请参见以下文章:
- Office 2010 KMS激活;
- Office 2013 KMS激活;
- Office 2015 KMS激活。
VAMT:批量激活管理工具
要管理KMS服务器和密钥,可以安装一个特殊的工具:批量激活管理工具(VAMT)。
- VAMT并非作为操作系统的一部分提供,而是包含在Windows评估和部署工具包(ADK)中并单独安装。
- VAMT需要.NET Framework;
- 作为VAMT数据库,使用SQL Server Express。
- 所有可用的Microsoft操作系统(包括Windows 10和Windows Server 2019)都支持最新的可用版本VAMT 3.1.
常见的Microsoft KMS激活问题和疑难解答
- 在客户端上安装KMS主机密钥(CSVLK)而不是公共" GVLK"密钥;
- GVLK键与要激活的主机上的操作系统版本不对应;
- 必须更新KMS服务器以支持最新的Microsoft产品的激活(例如,此处描述了运行Windows 2008 R2的KMS服务器的更新过程以支持Windows 10和Windows Server 2012 R2的激活);
- 如果激活期间出现错误" 0xC004F074",则可能是缺少SRV记录的原因
_VLMCS._tcp.theitroad.local
在DNS中。它可以由DNS管理员创建,也可以在客户端上手动指定KMS服务器地址(如下所示的命令);
- 错误" 0xC004F038"表示网络中没有足够的客户端进行激活(请参阅上面的激活阈值信息)。最小数量的激活请求到达KMS服务器后,它将开始激活客户端。
- 我们可以使用Test-NetConnection cmdlet在KMS服务器上检查端口TCP/1688的可用性:
TNC par-kms -Port 1688 -InformationLevel Quiet
。如果端口不可用,则可能是防火墙阻止了访问,或者软件保护服务(sppsvc)没有在KMS服务器上运行;否则,可能会阻止该访问。
使用Slmgr命令进行Windows KMS激活
为了管理和诊断所有Windows版本中的OS激活,有一个内置脚本slmgr.vbs
。
要在Windows客户端上安装公共KMS密钥(GVLK)(我们需要根据Windows版本指定GVLK密钥),请使用以下命令:
cscript.exe %windir%\system32\slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
手动指定KMS服务器名称和激活端口:
cscript.exe %windir%\system32\slmgr.vbs /skms kms-srv.theitroad.local:1688
要在指定的KMS服务器上激活Windows,请执行以下操作:
slmgr /ato
有关Windows激活状态的信息:
slmgr.vbs /dlv
所有许可信息(包括MS Office激活状态):
slmgr.vbs /dlv all
提示。带有许可信息的弹出窗口并不总是可以滚动的,并且通常不适合屏幕显示。我们可以将此信息输出到文本文件中,以使分析更加方便:
cscript.exe %windir%\system32\slmgr.vbs s /dlv all > c:\tmp\dlv.txt
如何使用KMS许可证服务器手动激活MS Office?
为了管理客户端上Microsoft Office套件中产品的激活,使用了另一个vbs脚本" ospp.vbs"。我们可以通过搜索Office安装目录来找到它(对于Office 2015,默认情况下ospp.vbs文件位于\ Program Files\Microsoft Office\Office16目录中)。
要手动为MS Office指定KMS服务器地址,请执行以下操作:
cscript ospp.vbs /sethst:kms-srv.theitroad.local
要更改KMS激活端口,请执行以下操作:
cscript ospp.vbs /setprt:1689
在KMS服务器上激活Office副本:
cscript ospp.vbs /act
我们可以使用以下命令获取Office 2015/365的当前激活状态:
cscript ospp.vbs /dstatusall