使用py-kms在CentOS7中搭建KMS服务器


在工作中我们经常会遇到需要激活Windows或者office的问题,这里笔者为大家提供了一种通过自己搭建KMS服务器来激活的方法。


1、了解Windows系统的版本介绍

版本缩写版本全称版本意义
Alpha版Alpha内部测试版,一般不会向外部发布,会有很多Bug,只供测试人员使用,如果您看到Alpha版本了,一般来讲对于微软来讲可能是个不好的消息。
Beta版Beta也是测试版,是继Alpha之后推出,这个阶段的版本会不断加入新的功能,改动也会较大,也会面向市场测试。
RC版ReleaseCandidate测试候选版本,WINDOWS RC版不会再加入新功能,主要测试软件内的BUG。需要激活。
RTM版Release to Manufacture或者Resin Transfer Molding供给生产工厂大量压片的版本,内容跟正式版是一样的,不过RTM版也会在时间上再次划分出限制版和评估版的。再次进行市场验证。
EVAL版Evaluation与“评估版”类似,功能上和零售版没有区别,需要激活。
CTP版Community Test Preview社区测试试用版。
OEM版Original Equipment Manufacturer计算机厂商随机版,只能随计算机一对一出货,不可以单独零售。只能全新安不能从旧有操作系统升级,包装也不像零售版那样精美(反正是随机子打包的,穿的再好也没用),通常只有一面CD盘和使用授权说明书。 比如联想、DELL等出售的WINDOWS操作系统计算机一般都是。
OEM版本一般不需要激活。
RTL版Retail正式零售版,供市面上架零售。
另外,在安装盘的i386文件夹里有一个eula.txt文件,最后有一行EULAID,就是你的版本标识。
简体中文正式版是EULAID:WX.4_PRO_RTL_CN;
繁体中文正式版是WX.4_PRO_RTL_TW;
其中:
WX.开头是正式版,WB.开头是测试版;
_PRE代表家庭版,_PRO代表专业版;
正版的零售版本一般都需要激活的。
VOL版Volume OR Volume Licensing for Organizations翻译过来就是组织团体批量许可,也就是大客户版,比如ZF部门、大型商业机构等统一购买的一般都是大客户版本,一般根据购买数量又可细分为开放式许可(Open License)、选择式许可(Select License)、企业许可协议(Enterprise Agreement)、教育科研许可(Academic Volume Licensing)等5种版本,根据VOL版本计划,VOL版本的WINDOWS是不需要激活的。

如果我们想要使用kms服务器的方法激活的话,我们需要使用的版本就必须是VOL版本,有时候也会被简称为VL版本


2、如何确认VOL版本,与VOL版本下载

首先你必须要确认自己使用的是VOL版本,若不是,可以尝试安装VOL版本或者使用其他脚本将自己的零售版转换成为VOL版本,具体转换方法百度即可。
那么如何确认自己是不是VOL版本呢?
以office为例,首先你需要确定你所使用版本的目录名称

版本目录名称
2016Office16
2013Office15
2010Office14

如果你是32位且是默认安装目录的话,那么目录就会在:
C:\Program Files (x86)\Microsoft Office\目录名称
如果你是64位且是默认安装目录的话,那么目录就会在:
C:\Program Files\Microsoft Office\目录名称
这里以笔者的office举例,笔者使用的是64位的office2010,默认安装目录,所以笔者的安装目录就是在C:\Program Files\Microsoft Office\Office14下。在这个目录下,如果你是VOL版本,你应该能够找到一个名称是OSPP.VBS的文件(如下图),若找不到则你安装的不是VOL版本。

如果不是VOL版本,你可以去 https://msdn.itellyou.cn/ 这里下载,下载的时候请注意下载带有VOL标识的版本(如下图),其余版本均不可使用kms服务器激活。

笔者在自己的网盘里面备份了office2010的VOL版本(从msdn上下载的):http://waternote.ctfile.net/fs/2276132-372994747


3、在CentOS7上安装py-kms

py-kms GitHub地址:https://github.com/dzacharo/py-kms.git
安装所需程序有python、git、py-kms
首先安装gitpython,之后进入到/usr/local/目录,使用git clone命令安装py-kms

yum -y install git python-argparse
cd /usr/local/
git clone https://github.com/myanaloglife/py-kms.git

之后执行即可:

nohup /usr/bin/python /usr/local/py-kms/server.py >/dev/null &

但是在这里笔者遇到一个问题,输入后会提示:

# nohup: ignoring input and redirecting stderr to stdout

所以笔者将执行命令修改了一点,改成:

nohup /usr/bin/python /usr/local/py-kms/server.py >/dev/null 2>&1 &

再次执行,此提示消失。
之后我们可以检查一下该进程是否存在

ps -ef | grep python


我们可以看到py-kms的进程已经在运行了。
之后我们需要配置下防火墙,KMS服务器默认使用的是1688端口。
笔者这里使用的是iptables防火墙。

vi /etc/sysconfig/iptables

22端口下面添加1688端口:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1688 -j ACCEPT

重启防火墙。

systemctl restart iptables.service

至此,KMS服务器的搭建工作完成。


4、测试KMS服务器是否能正常工作(可选)

这里需要使用一个工具vlmcs1
vlmcs博主备份地址:http://waternote.ctfile.net/fs/2276132-375213434
首先我们以管理员身份打开CMD,之后将vlmcs拖进去,打上你要测试的地址:端口(不输入端口默认为1688)。
若返回信息显示successful则说明KMS服务器可用。
更多高级用法请打vlmcs -help和vlmcs -1


5、通过KMS服务器激活Windows

1、以管理员身份打开命令提示符CMD
2、确认自己的系统版本(若已知可自行跳过)。

wmic os get caption

3、获取相应的密钥。
可以前往此处查找:https://docs.microsoft.com/zh-cn/windows-server/get-started/kmsclientkeys
4、得到相应的key之后,在cmd中执行安装key。

slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx

5、修改激活的服务器,执行激活命令

slmgr /skms 你KMS服务器的IP或者域名
slmgr /ato
slmgr /xpr

对于激活时候可能出现的错误:
1、错误代码 0xC004F035

  • 原因(若嫌麻烦可以直接看下面的解决方法):
    这种情况的出现是因为你电脑BIOS里的ACPI_SLIC表并不支持安装该系统,或者是损坏(概率极低)。而ACPI_SLIC 表是用在 ACPI 兼容的 BIOS 里,用于存储 Software Licensing 信息的。
    当尝试使用KMS方式激活的时候,会尝试得到这个信息,如果版本不符合或者该内容不存在则无法激活。
  • 解决方法:
    解决方法有两种:

    • 第一种是刷含有OEM信息的BIOS或者去修改BIOS SLIC表,但这种操作很危险,需要专业人士才能进行。
    • 第二种方法是通过使用BIOS SLIC动态加载工具,来软加载SLIC即可。
      这里笔者提供两个工具:一个是BIOS SLIC动态加载工具,一个是SLIC Dump ToolKit(用于查看是否加载成功)。
      点击此处下载
      1、下载解压后我们先以管理员身份运行SLIC_Dump_ToolKit.EXE,若显示提取失败!(SLIC表没有找到!)则进行第二步。

      2、以管理员身份运行DBSLDR.EXE,默认采用“自动选择加载”方法,直接单击“安装”即可,提示安装成功!重启生效(不会对硬件造成改动)。

      3、再次以管理员身份运行SLIC_Dump_ToolKit.EXE,若在状态栏显示“提取成功”,说明安装成功,可以按照正常步骤进行激活。

2、错误代码 0xC004F074

  • 原因与解决方法:
    1、尝试查看你的KMS服务器是否可用,具体步骤请参照前面的内容。


6、通过KMS服务器激活office

首先以管理员身份打开命令提示符CMD
之后进入到你的office目录(第二章中有提到具体位置),以笔者使用的office2010为例:

cd "%ProgramFiles%\Microsoft Office\Office14"

然后执行:

cscript ospp.vbs /sethst:你KMS服务器的IP或者域名
cscript ospp.vbs /act
cscript ospp.vbs /dstatus

KMS的激活有效期是180天,一般来说客户端会每隔7天发送一次请求,只要KMS服务器存在,则会一直处于激活的状态。若不存在,则保留180天,直到再次激活。


参考资料:


本文章笔记版本地址:http://ccdd6ec5.wiz03.com/share/s/3cTmX51TMQ-b2QTact03UPg83fTTOv1rMkCK2JezVE3pHlfs

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注