前言

批量激活是 Microsoft 批量许可客户用于自动化和管理跨大型组织激活 Windows 操作系统、Microsoft Office 和其他 Microsoft 产品的过程。
主要包括两种不同的模式:一种是密钥管理服务(Key Management Service ,KMS),另一种是多次激活密钥(Multiple Activation Key,MAK)。

KMS是Microsoft从Windows Vista开始推出的一种新型产品激活机制。在Windows Server 2012版本之后,作为一种角色存在,其基本不占用系统资源,因此不必配置专用服务器。

KMS和MAK的不同之处

KMS方式

  1. 采用C/S方式管理激活
  2. 局域网至少存在一台KMS主机
  3. 服务端已安装KMS Key
  4. 客户端已安装VOL Key
  5. 已达到最低激活数量阈值(客户端>=25,Server|Office>=5)
  6. 激活后每7天检查一次状态,每180天重新激活一次
  7. 客户端在30天豁免期(grace period)期间内,每2小时检查一次状态,直至kms激活

    MAK方式

  8. 通过Microsoft的托管激活服务进行一次性激活

  9. 通过Internet或电话方式激活
  10. 激活一次,密钥数量减少一次
  11. 可将密钥封装至无人参与安装文件Unattend.xml,以进行激活

    KMS工作原理

    KMS激活需要TCP / IP连接。默认情况下,KMS主机和客户端计算机使用DNS来发布和查找KMS服务。KMS服务使用DNS中的服务(SRV)资源记录(RR)来存储和传送KMS主机的位置。KMS客户端第一次向DNS查询KMS服务信息时,它会从DNS返回的SRV RR列表中随机选择一个KMS主机(若存在多个KMS主机)。
    要激活KMS客户端,它必须拥有一个称为GVLK(通用批量许可证密钥)的特殊公共KMS密钥。指定GVLK后,KMS客户端会尝试在DNS中查找与KMS服务器对应的SRV记录并激活。

    以下是最新Microsoft产品的公共KMS密钥(GVLK)列表:
    · 适用于Windows 7 / Windows Server 2008/2008 R2的GVLK#windows-7-and-windows-server-2008-r2)
    · 适用于Windows 8.1和Windows Server 2012 R2的GVLK#windows-server-2012-r2-and-windows-81)
    · 适用于Windows Server 2016的GVLK#windows-server-2016)
    · 适用于Windows 10的GVLK#windows-10)
    · MS Office 2019的GVLK
    · MS Office 2016的GVLK
    · MS Office 2013的GVLK #%E9%80%82%E7%94%A8%E4%BA%8E-office-2013-%E7%9A%84%E9%80%9A%E7%94%A8%E6%89%B9%E9%87%8F%E8%AE%B8%E5%8F%AF%E5%AF%86%E9%92%A5)
    · MS Office 2010的GVLK

    安装KMS主机

    KMS 主机可以在运行任何受支持的 Windows 操作系统的物理计算机或虚拟机上运行。 运行 Windows Server2008R2之后版本上 的 KMS 主机可以激活支持批量激活的任何 Windows 客户端或服务器操作系统。 运行在 Windows10 的 KMS 主机只能激活运行 Windows 10、Windows 8.1、Windows8、Windows7 或 Windows Vista 的计算机。
    单个 KMS 主机可以支持无限数量的 KMS 客户端,但出于故障转移的目的,Microsoft 建议最少部署两个 KMS 主机。
    Windows 10 安装步骤

  12. 打开提升的命令提示符。

  13. 输入以下命令之一。
    • 若要安装 KMS 密钥,键入 slmgr.vbs /ipk
    • 若要联机激活,键入 slmgr.vbs /ato
    • 若要使用电话激活,键入 slui.exe 4
  14. 激活 KMS 密钥后,重新启动软件保护服务。
    • net stop slsvc && net start slsvc

Windows Server 2012 安装步骤

  1. 使用具有本地管理凭据的帐户登录到运行 WindowsServer 2012 R2 的计算机。
  2. 启动服务器管理器。
  3. 添加批量激活服务角色,如图:

KMS批量激活管理 - 图1

  1. 角色安装完成之后,可启动“批量激活工具”,进行基本配置,配置步骤如图:

KMS批量激活管理 - 图2KMS批量激活管理 - 图3

  1. 选择激活方式,进行激活KMS Key。

KMS批量激活管理 - 图4
KMS 主机配置完成,它将开始侦听激活请求。 不过,在未达到激活阈值之前它将无法成功激活客户端。

KMS发现搜索顺序

启用KMS自动发现(默认)并且未禁用KMS主机缓存时,KMS客户端将使用以下顺序确定要使用的KMS(他们将尝试每个步骤,直到具有正确密钥的激活KMS主机响应):

  • REG_SZ注册表值中的SKU特定值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\``AppID``\``SKUID``\KeyManagementServiceName``

  • REG_SZ注册表值中的AppID特定值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\``AppID``\KeyManagementServiceName``

  • REG_SZ注册表值中的全局值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\KeyManagementServiceName``
注:

  • SKU特定的缓存KMS主机(这是上次成功激活KMS时使用的主机的缓存标识)
  • DNS自动发现(权重和优先级)

如果缓存的 KMS 主机没有响应,则执行发现。

KMS的激活过程

  1. KMS 主机安装完成后,更新 DNS 中的SRV资源记录以使客户端能够找到 KMS 主机。 (如果你的环境不支持 DNS 动态更新协议,则需手动添加 DNS 记录)
    2. KMS客户端计算机从配置的注册表项或DNS中的KMS SRV记录(_vlmcs._tcp)发现KMS主机;
    3. 客户端通过1688 / TCP(默认设置)向KMS主机发送一个RPC数据包请求;
    4. KMS主机将客户端ID添加到表中,客户端 ID 仅用于确定是否满足激活阈值;
    5. KMS 主机向客户端发送回一个数据包。 此数据包包含从该 KMS 主机请求激活的计算机数量的计数;
    6. 如果计数超过要激活的产品的激活阈值,则激活客户端。 反之,客户端将继续重试。
    激活流程图示:
    KMS批量激活管理 - 图5

    常用激活命令

    slmgr.vbs称为软件许可证管理器,是用于配置和检索批量激活客户端信息的脚本。Slmgr.vbs脚本无法跨平台工作,及无法从Vista系统管理Windows 7 或 Windows Server 2008 R2系统。要管理远程客户端,请使用批量激活管理工具(VAMT)1.2或更高版本,或创建了解平台之间差异的自定义WMI脚本。

OSPP全称为:Office Software Protection Platform,Office软件保护平台脚本。它是目前Office自身提供的激活管理工具。
Cscript.exe和WScript.exe是Windows系统中的脚本运行引擎,WScript.exe基于GUI方式运行,Cscript.exe基于命令行方式运行。
PS:请以提权的方式运行slmgr和ospp。

slmgr常用选项

KMS主机查看客户端计数:slmgr /dlv
KMS批量激活管理 - 图6

KMS客户端命令

  • 重置授权状态:slmgr /rearm(重启生效)
  • 卸载产品密钥:slmgr /upk
  • 从注册表清除密钥:slmgr /cpky
  • 安装产品密钥:slmgr /ipk
  • 指定KMS主机:slmgr /skms
  • 在线自动激活:slmgr /ato
  • 查看激活状态:slmgr /dlv | /dli
  • 查看许可证过期时间:slmgr /xpr
  • 清除使用的kms信息:slmgr /ckms

    OSPP常用选项

    该脚本位于Office安装目录C:\Program File<(x86)>\Microsoft Office\Office xx

    office16是office 2016或2019 office15是Office 2013 office14是Office 2010

  • 指定KMS主机:cscript ospp.vbs /sethst:

  • 激活:cscript ospp.vbs /act
  • 查看激活信息:cscript ospp.vbs /dstatus
  • 删除KMS主机:cscript ospp.vbs /remhst
  • 重置授权状态:cscript ospp.vbs /rearm
  • 卸载产品密钥: cscript ospp.vbs /unpkey:xxxxx
  • 安装/替换产品密钥: cscript ospp.vbs /inpkey:xx-xx-xx-xx

    批量激活管理工具VAMT

    VAMT 使网络管理员和其他IT专业人员能够自动化和集中管理Windows,Microsoft Office。其为Windows 评估和部署工具包 (ADK) 的一部分,并需要数据库的支持。VAMT可以使用多个激活密钥(MAK)或 Windows密钥管理服务(KMS)来管理卷激活。
    VAMT 需要所有管理的计算机的本地管理员权限,以便存放确认 ID (CID)、获取客户端产品的许可证状态以及安装产品密钥。VAMT是一个标准的Microsoft管理控制台(MMC)管理单元,需要Microsoft管理控制台(MMC)3.0。

VAMT可以安装在具有以下Windows操作系统之一的任何计算机上:

  • Windows 7或更高版本
  • Windows Server 2008 R2或更高版本

    VAMT使用条件

  1. 在主计算机安装VAMT;
  2. 在目标计算机上配置 Windows Management Instrumentation (WMI)防火墙例外;
  3. VAMT 须拥有Active Directory域的管理权限;
  4. 要检索产品许可证状态,VAMT 必须拥有远程计算机的管理权限;
  5. 对于工作组计算机,必须创建注册表项,以便执行用户帐户控制 (UAC) 项下的远程管理操作;

    VAMT用户界面

    KMS批量激活管理 - 图7
    可执行的主要激活相关任务:
  • 添加和删除计算机
    • 可以通过AD DS,工作组,按个人计算机名称或IP地址或通过常规LDAP查询来发现计算机。
  • 发现产品
    • 可以发现Windows,Windows Server,Office,并选择客户端计算机上安装的其他产品。
  • 监控激活状态
    • 可以收集包括正在使用的产品密钥的最后5个字符,当前许可证状态(例如许可,宽限期,未许可)和产品版本信息。
  • 管理产品密钥
    • 可以存储多个产品密钥并将其安装到远程客户端产品。还可以确定MAK密钥剩余的激活次数。
  • 管理激活数据
    • 激活数据存储在SQL数据库中,并可将此数据导出到其他VAMT主机或XML格式的存档。

参考链接

https://docs.microsoft.com/en-us/previous-versions/tn-archive/ff793434(v=technet.10))
https://docs.microsoft.com/en-us/previous-versions/tn-archive/ee939272(v=technet.10))
https://docs.microsoft.com/zh-cn/windows/deployment/volume-activation/introduction-vamt
官方部署文档:
Volume_Activation_Deployment_Guide_Windows7.docx