从Windows Vista开始,Microsoft采用新的密钥管理方式,原来Windows XP、Windows Server 2003时的VOL密钥将不再采用。如果为企业部署Windows操作系统、使用何种激活方式,是每个网管员需要了解的问题。本文将就这一问题做出解答。

1 Windows Vista时代采用新的激活机制

在Windows XP与Windows Server 2003的时代,Microsoft的许可密钥有两种:一种是需要激活(可以通过网络、电话)的密钥,另一种是针对“大客户”的VOL密钥。对于同一种系统,例如Windows XP Professional,由于使用的密钥类型不同、激活的方式不同,所以,每一种产品都有不同的安装介质(虽然操作系统的用途、功能是完全一样的),两者不能混用。例如,如果你是购买的VOL密钥,则需要用VL版的安装光盘(或光盘镜像),不能用“零售版(该序列号通常需要激活)”的安装介质。这样,就造成了许多“大客户版”在网上的流行。

随着 Windows Vista 的发布,Microsoft改进了密钥管理方法。从Vista开始,所有的Windows操作系统(Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2)必须要激活才能使用。Microsoft针对批量许可证客户推出了两种新的密钥类型:“密钥管理服务 (KMS)”以及 “多次激活密钥 (MAK)”。

【说明】:(1)KMS是Key Management Services的简称,这种方式采用“客户/服务器方式”,需要在企业内配置KMS管理服务器,为企业中的其他操作系统提供批量激活的服务。KMS的密钥是一对,其中用于KMS服务器端的,称KMS KEY,用于客户端的,则称为VOL KEY。VOL KEY是Microsoft公开的,不需要购买。在安装Windows 7、Windows Server 2008 R2时,如果不输入序列号,则会采用这些VOL KEY进行安装。

在采用KMS机制时,有一个最低限度的计算机数量(客户端25台、服务器5台)。并且,当计算机被激活之后,每180天将要重新连接KMS服务器进行激活。

(2)MAK,是Multiple Activation Key的简称,这种开放式许可KEY允许多次激活。该激活是永久性的,在激活之后,只要操作系统不重新安装,激活将一直有效。

从Vista开始,对于同一种产品,例如Windows 7,其安装程序,不在区分是用于普通用户的“零售版”还是用于批量用户的“VOL”,都是相同的。

2 KMS产品密钥与分组

从Vista之后,Microsoft操作系统的密钥以产品分组进行组织。目前,共有 4 个产品分组,包括了所有 Windows 客户端及 Windows Server 操作系统。 其中一个分组针对客户端版本,其他三个分组涉及服务器版本。

截止到目前,Windows有两套产品分组:Windows 7时代的产品分组与Windows Vista时代的产品分组。当前Windows 7与Windows Server 2008 R2操作系统的分组如下:

Windows 客户端分组:Windows 7 Professional、Windows 7 Enterprise;

服务器分组A:Windows Web Server 2008 R2、Windows Server 2008 R2 HPC Edition、Windows HPC Server 2008 R2;

服务器分组B:Windows Server 2008 R2 Standard、Windows Server 2008 R2 Enterprise;

服务器分组C:Windows Server 2008 R2 Datacenter、Windows Server 2008 R2 Itanium-based System。

该分组情况如图1所示。

理解Windows操作系统的KMS与MAK密钥_第1张图片

图1 Windows 7、Server 2008 R2分组情况

Windows Vista 与 Windows Server 2008 的产品分组非常相似,如图2所示。

理解Windows操作系统的KMS与MAK密钥_第2张图片

图2 Windows Vista、Server 2008分组情况

在上面的分组中,是有“级别”的,Windows Server 2008 R2 Datacenter 高于 Windows Web Server 2008 R2,以及最新发布或生成的产品,例如Windows 7 大于 Windows Vista,用高级别的密钥组成的KMS服务器可以激活低级别的系统。分组级别如图3所示。

理解Windows操作系统的KMS与MAK密钥_第3张图片

图3 Windows操作系统分组级别

KMS的密钥类型旨在激活指定主机系统的服务,然后便可以在计算机上安装各种Windows版本激活。 因此,我们说 KMS 密钥在本质上是按等级划分的。

(1)KMS 密钥可发布至特定的产品分组,并与它们相互关联。例如,对于服务器分组B,Windows Server 2008 R2的标准版与企业版,是相同的产品分组。

(2)每种 KMS 密钥可以激活产品组内以及该层次结构中级别更低的产品组中的产品。例如,对于Windows 7时代的服务器分组B,除了可以激活同一组内的Windows Server 2008 R2的标准版与企业版,还可以激活服务器分组C中的Windows Web Server 2008 R2、Windows HPC Server 2008 R2,还可以激活客户端分组中的Windows 7专业版与企业版。

(3)每种 KMS 密钥可以激活产品组内以及该层次结构中级别更低的产品组中的产品。例如,对于Windows 7时代的服务器分组B,除了激活Windows 7时代的服务器分组C、Windows 7客户端外,还可以激活Windows Vista时代的服务器分组B、Windows Vista时代的服务器分组C及Windows Vista商业版与企业版。

3 多次激活密钥 (MAK)

在采用KMS密钥的时候,需要网络中有一台计算机(安装Windows Server操作系统并采用KMS密钥进行激活),该计算机将为网络中的其他Windows Vista或(和)Windows 7、Windows Server 2008、Windows Server 2008 R2提供激活的服务。但是,并不是所有的企业都需要(能)采用KMS激活机制。所以,Microsoft同时提供MAK密钥。

MAK 密钥与零售密钥行为相类似,不同的是它们拥有更多的激活方法。激活数量视客户购买的许可协议而定。购买的许可证数量与每个密钥提供的激活数量不会 1:1 配对。 MAK密钥的分组也是按照“服务器C”、“服务器B”、“服务器A”、“客户端”的方式进行分组,分组的内容也与KMS的KEY分组相同,但是,与 KMS 不同,MAK 密钥用于激活个别系统而不是服务。采用 MAK 后,激活将会与单一产品组直接相关,并且仅可激活特定产品组内的Windows版本。因此,我们说 MAK 密钥本质上是横向的。

采用 MAK 后,同样重要的是了解如何实现不同代 Windows 产品共同协作。 如上所述,有两套产品分组,一套是针对当前这代 Windows 产品(Windows 7 和 Windows Server 2008 R2),另一套是针对上一代产品(Windows Vista 与 Windows Server 2008)。

(1)MAK 密钥可发布至特定的产品分组,并与它们相互关联。

(2)每种 MAK 密钥仅可激活该产品组内的产品,不能激活不在同一产品组内的产品(例如,服务器B分组中的Windows Server 2008 R2企业版的密钥,只能激活Windows Server 2008 R2的企业版与标准版,不能激活Windows Server 2008 R2数据中心版、Web版,也不能激活Windows 7)。

(3)每种 MAK 密钥仅可激活这一代的产品(例如,Windows 7时代的,服务器分组B的密钥—Windows Server 2008 R2,不能激活Windows Vista时代的服务器分组B内的产品Windows Server 2008标准版或企业版)。

【说明】从Vista开始,除了有KMS、MAK之外,还分:

RTL,这种零售KEY允许多个激活。

AAA,这种零售KEY是学术联盟项目,并允许一个激活。这些KEY分批发行。

AAL 这是实验室使用的KEY,用于学术联盟计划,允许多个激活。

4 KMS服务器应用举例

今天去为一个单位,配置网络。该单位前段时间买了两台新的服务器,同时买了Windows Server 2008 R2,该Windows Server 2008 R2有两个序列号:一个为可以激活45次的MAK密钥,另一个为KMS密钥。

由于该单位购买的新服务器,配置较高(双CPU、16GB内存、8TB存储),故采用了虚拟化技术,提供Windows Server 2008 R2的虚拟机。由于虚拟机数量较多,准备采用KMS激活服务器的方式。

4.1 KMS服务器安装

首先,我在网络中的一台Windows Server 2008 R2的物理计算机上,安装KMS的KEY并激活,步骤如下:

slmgr.vbs –ipk AAAAA-BBBBB-CCCCC-DDDDD-EEEEE

slmgr.vbs -ato

激活KMS服务器。其中AAAAA-BBBBB-CCCCC-DDDDD-EEEEE是该单位购买的KMS激活密钥。

【说明】一般情况下,每个kms密钥直接激活6台服务器,并且这6台都可以作为kms服务器,这6台机器如果重装,每台共可以激活10次。

4.2 使用KMS服务器激活

然后,分别在Hyper-V Server与VMware ESX Server中,创建虚拟机并安装Windows Server 2008 R2操作系统,安装完成后,用如下的命令,设置KMS服务器的地址并激活。

slmgr.vbs -skms kms-server.ip

slmgr.vbs –ato

其中kms-server.ip是KMS服务器的IP地址。

由于采用KMS服务器,激活Windows Server 2008(或Windows Vista、Windows 7等操作系统),有激活数量的限制,所以,在前几台,会出现“计数不足”的提示,如图1所示:

理解Windows操作系统的KMS与MAK密钥_第4张图片

图1 计数不足

你可以安装多台Windows Server 2008 R2(对于服务器版本来说,需要5台),并使用KMS激活,如图2所示。

理解Windows操作系统的KMS与MAK密钥_第5张图片

图2 采用KMS激活

4.3 在KMS服务器上检查激活的数量

在KMS服务器上,可以使用slmgr -dli或slmgr –dlv,查看已经激活的数量,如图3所示。

理解Windows操作系统的KMS与MAK密钥_第6张图片

图3 计数

从实验中我还发现一个问题,安装在VMware ESX Server虚拟机中的Windows Server 2008 R2,会在“许可证状态为已经授权的请求数”中计数,而安装在Hyper-V Server虚拟机中的Windows Server 2008 R2,不会在此计数,但会记录在“当前计数”以及“接收到的总请求数”中计数。

4.4 其他问题解决

如果出现错误:0xC004C003的错误(如图4所示),表示你当前的Windows Server 2008 R2,安装序列号不是KMS客户端有效的KEY,你需要将工作站所用的KEY,替换为Windows所指定的KMS客户端有效的KEY。

理解Windows操作系统的KMS与MAK密钥_第7张图片

对于Windows Server 2008 R2企业版,有效的KEY是489J6-VHDMP-X63PK-3K798-CPX3Y,你可以用:

slmgr.vbs -ipk 489J6-VHDMP-X63PK-3K798-CPX3Y

进行更换,更换之后就可以激活了。

如果在客户端激活时,出现错误代码0xC004F038,原因如下:

KMS服务正式开始工作,需要至少5个Windows 2008/R2 或者25个Windows Vista/7的物理机或虚拟机,在没达到数量之前,这些OS都处于未激活状态(当然,有30天的宽限期)

4.5 编写批处理激活工作站

如果要减轻激活的负担,可以编写如下的批处理文件:

cd %systemroot%\system32\

cscript.exe slmgr.vbs -ipk 489J6-VHDMP-X63PK-3K798-CPX3Y

cscript.exe slmgr.vbs -skms kms-server-ip

cscript.exe slmgr.vbs –ato

5 Microsoft的有效的KMS KEY

如果你安装的操作系统,没有选择VOL KEY进行安装,此时将不能采用KMS服务器进行激活,你可以使用将你的序列号,改为VOL KEY,才能进行激活。以下就是来自微软的Windows 7 KMS客户端激活密钥:

Windows 7 Professional - FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4

Windows 7 Professional N - MRPKT-YTG23-K7D7T-X2JMM-QY7MG

Windows 7 Enterprise - 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH

Windows 7 Enterprise N - YDRBP-3D83W-TY26F-D46B2-XCKRJ

Windows 7 Enterprise E - C29WB-22CC8-VJ326-GHFJW-H9DH4

Windows Server 2008 R2 HPC Edition - FKJQ8-TMCVP-FRMR7-4WR42-3JCD7

Windows Server 2008 R2 Datacenter - 74YFP-3QFB3-KQT8W-PMXWJ-7M648

Windows Server 2008 R2 Enterprise - 489J6-VHDMP-X63PK-3K798-CPX3Y

Windows Server 2008 R2 for Itanium-Based Systems - GT63C-RJFQ3-4GMB6-BRFB9-CB83V

Windows Server 2008 R2 Standard - YC6KT-GKW9T-YTKYR-T4X34-R7VHC

Windows Web Server 2008 R2 - 6TPJF-RBVHG-WBW2R-86QPH-6RTM4

Windows Vista Business - YFKBB-PQJJV-G996G-VWGXY-2V3X8

Windows Vista Business N - HMBQG-8H2RH-C77VX-27R82-VMQBT

Windows Vista Enterprise - VKK3X-68KWM-X2YGT-QR4M6-4BWMV

Windows Vista Enterprise N - VTC42-BM838-43QHV-84HX6-XJXKV

Windows Server 2008 Datacenter - 7M67G-PC374-GR742-YH8V4-TCBY3

Windows Server 2008 Datacenter without Hyper-V - 22XQ2-VRXRG-P8D42-K34TD-G3QQC

Windows Server 2008 for Itanium-Based Systems - 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

Windows Server 2008 Enterprise - YQGMW-MPWTJ-34KDK-48M3W-X4Q6V

Windows Server 2008 Enterprise without Hyper-V - 39BXF-X8Q23-P2WWT-38T2F-G3FPG

Windows Server 2008 Standard - TM24T-X9RMF-VWXK6-X8JC9-BFGM2

Windows Server 2008 Standard without Hyper-V - W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ

Windows Web Server 2008 - WYR28-R7TFJ-3X2YQ-YCY4H-M249D