在之前的文章中,我讲到我搭建了一个KMS激活服务器,但是呢,这个要么需要搭配脚本使用,要么需要搭配KMS激活软件比如HEU_KMS_Activator软件的自定义KMS服务器功能实现,所以整个过程相对繁琐,那我能不能更懒人化一些呢?答案是:能。
注:文章中的超链接均可点击,方便跳转到相应的网站
警告:在未经微软官方允许的情况下搭建此KMS服务可能会遭到版权申诉,本文章仅供学习,请勿用于非法用途!
背景
我所在的学校的机房经常有Windows和Office的激活问题,要么是因为KMS满180天到期了没有自动续期,要么是机房的电脑在发癫莫名其妙的掉了激活,而且一个一个的给每一台电脑激活很是麻烦(每一台电脑有影子系统,而且系统还是老掉牙的Windows 10 1809,我估摸着换系统 如果不借助PXE等工具 怕是得忙个半天都不一定给整个机房装好系统),Office的KMS激活期限是180天,所以装了影子系统,那个激活的证书密钥文件没有被更新,就会导致激活失效,而这个局域网的激活,就可以保证在连接了网络的情况下,不需要额外在Windows系统上安装软件,开机等个几秒实现自动激活
我们能不能把这个问题自动化呢,答案也是可以的
前置条件
微软官方的描述:https://learn.microsoft.com/zh-cn/windows-server/get-started/kms-create-host#prerequisites
首先我们需要一个路由器(或者再加一个网关,确保在一个子网或一个域内),

连接的路由器最好是OpenWrt系统(可以自己刷系统,我使用的路由器是红米的AC2100),
系统必须是Windows 10 LTSC(企业版)(Windows 7 VOL版的应该也行,但我没试过,Office 2016是最后一个兼容Windows 7的版本)
Office也必须是2021 LTSC版(企业版),且激活通道必须是Office企业长期版
只有企业版的Windows和Office才有通过Active Directory 域服务局域网查询SRV记录实现自动激活的功能
需要局域网内有vlmcsd服务的SRV DNS记录(局域网的路由器最好是OpenWrt系统,同属一个子网,且需要与一台部署了KMS服务的服务器连接)
如果路由器已经集成了vlmcsd,则可以跳过安装vlmcsd的步骤,如果还支持了DNS自动添加SRV记录,则添加SRV记录的操作部分都可以省了,有关于SRV记录的详细信息可以参阅RFC 2782: A DNS RR for specifying the location of services (DNS SRV)

先看一下我这个ImmortalWrt集成的KMS服务的启动脚本
#!/bin/sh /etc/rc.common
# Copyright (c) 2011-2015 OpenWrt.org
START=90
get_config() {
config_get_bool enabled $1 enabled 0
config_get autoactivate $1 autoactivate 1
}
add_vlmcs_entry() {
local new_hostname="$1"
uci -q batch <<-EOF >/dev/null
add dhcp srvhost
set dhcp.@srvhost[-1].srv=_vlmcs._tcp
set dhcp.@srvhost[-1].target=$new_hostname
set dhcp.@srvhost[-1].port=1688
set dhcp.@srvhost[-1].class=0
set dhcp.@srvhost[-1].weight=100
commit dhcp
EOF
/etc/init.d/dnsmasq restart
exit 0
}
start() {
config_load vlmcsd
config_foreach get_config vlmcsd
[ $enabled -eq 0 ] && exit 0
/usr/bin/vlmcsd -i /etc/vlmcsd.ini -L 0.0.0.0:1688
echo "KMS Server has started."
if [ $autoactivate -eq 1 ]; then
local HOSTNAME=`uci get system.@system[0].hostname`
local index=$(uci -q show dhcp |grep "].srv='_vlmcs._tcp'") \
|| add_vlmcs_entry $HOSTNAME
index=${index#*[}
index=${index%]*}
local host_name=$(uci -q get dhcp.@srvhost[$index].target)
if [ "$HOSTNAME" != "$host_name" ]; then
uci delete dhcp.@srvhost[$index]
add_vlmcs_entry $HOSTNAME
fi
fi
}
stop() {
killall -q -9 vlmcsd
echo "KMS Server has stopped."
}
可以知道,它用到了uci工具(这是OpenWrt自带的工具,如果没有,则需要自行编译安装uci,教程可参考ubuntu安裝UCI的教程以及UCI的常用命令和API)来添加SRV记录(也可以使用其它工具管理DHCP/DNS服务),参考UCI系统
这是vlmcsd的配置文件,可以增加新的产品主密钥
#ePID/HwId设置为Windows显式
;Windows = 06401-00206-471-111111-03-1033-17763.0000-2822018 / 01 02 03 04 05 06 07 08
#ePID设置为Office2010(包含Visio和Project)显式
;Office2010 = 06401-00096-199-222222-03-1033-17763.0000-2822018
#ePID/HwId设置为Office2013(包含Visio和Project)显式
;Office2013 = 06401-00206-234-333333-03-1033-17763.0000-2822018 / 01 02 03 04 05 06 07 08
#ePID/HwId设置为Office2016(包含Visio和Project)显式
;Office2016 = 06401-00206-437-444444-03-1033-17763.0000-2822018 / 01 02 03 04 05 06 07 08
#ePID/HwId设置为Office2019(包含Visio和Project)显式
;Office2019 = 06401-00206-666-666666-03-1033-17763.0000-2822018 / 01 02 03 04 05 06 07 08
#ePID/HwId设置为Windows中国政府版 (Enterprise G/GN) 显式
;WinChinaGov = 06401-03858-000-555555-03-1033-17763.0000-2822018 / 01 02 03 04 05 06 07 08
#使用自定义TCP端口
;Port = 1688
#监听所有IPv4地址(默认端口1688)
;Listen = 0.0.0.0:1688
#监听所有IPv6地址(默认端口1688)
;Listen = [::]:1688
#程序启动时随机ePIDs(只有那些未显式指定的)
;RandomizationLevel = 1
#在ePIDs中使用特定区域 (1033 = 美国英语),即使ePID是随机的
;LCID = 1033
#设置最多4个同时工作(分叉进程或线程)
;MaxWorkers = 4
#闲置30秒后断开用户
;ConnectionTimeout = 30
#每次请求后立即断开客户端
;DisconnectClientsImmediately = yes
#写一个pid文件(包含vlmcsd的进程ID的文件)
;PidFile = /var/run/vlmcsd.pid
#写日志到/var/log/vlmcsd.log
;LogFile = /var/log/vlmcsd.log
#创建详细日志
;LogVerbose = true
#设置激活间隔2小时
;ActivationInterval = 2h
#设置更新间隔7天
;RenewalInterval = 7d
#运行程序的用户为vlmcsduser
;user = vlmcsduser
#运行程序的组为vlmcsdgroup
;group = vlmcsdgroup
#禁用或启用RPC的NDR64传输语法(默认启用)
;UseNDR64 = true
#禁用或启用RPC的绑定时间特性协商(默认启用)
;UseBTFN = true
搭建KMS服务器的部分可以借助我的Docker版Windows KMS激活服务端搭建KMS激活服务,由沧水的KMS服务修改而来
先拉取镜像
docker pull xiwangly/kms
运行,需要放行TCP 1688端口
docker run -itd --name=kms -p 1688:1688 --restart=always xiwangly/kms
使用下面的Dockerfile可以构建此镜像
FROM alpine:latest
ENV TZ Asia/Shanghai
RUN /bin/sh -c 'apk --no-cache add net-tools procps wget iproute2 unzip tzdata;\
wget -q --no-check-certificate https://pan.xiwangly.top/d/%E6%9C%AC%E5%9C%B0%E7%A3%81%E7%9B%98/vlmcsd-2018.zip;\
unzip -q vlmcsd-2018.zip -d /usr/local/;\
ln -sv /usr/local/vlmcsd-2018/ /usr/local/KMS;\
chmod +x /usr/local/KMS/binaries/Linux/intel/static/*;\
apk del wget unzip;\
rm vlmcsd-2018.zip;\
/usr/local/KMS/binaries/Linux/intel/static/vlmcsd-x64-musl-static;'
ENTRYPOINT /usr/local/KMS/binaries/Linux/intel/static/vlmcsd-x64-musl-static;/bin/sh
验证KMS服务器是否有效:KMS服务器检测
当然,是不是一定要用Linux系统跑KMS服务呢,不是的,也可以通过Windows Server系统添加正向查找区域的方式实现(这个我没有试过,参考文章DNS添加KMS SRV记录激动激活,不过可以肯定的是这个比Linux搭建vlmcsd服务再弄SRV记录要更简单)




Cloudflare的SRV记录(指向了我的服务器)

其它方法
如果不能实现Active Directory 域服务局域网查询SRV记录实现自动激活,还可以借助Windows 的任务计划程序(位于%windir%\system32\taskschd.msc
)运行激活脚本实现
科普
Windows系统有很多版本,参考windows各个版本 有什么区别
Office软件有很多版本,我们通常所说的Office指微软公司的Office产品(Microsoft Office),而不是国内金山公司出品的WPS软件
Office有三种安装类型:即点即用(简称C2R)和Microsoft Windows Installer(简称MSI),第三种类型是从 Microsoft Store 应用商店安装 Office
零售版的Office一般都是C2R安装类型的,而批量版的Office一般都是MSI安装类型的,(Windows 10 家庭和学生版)系统安装后自带都是应用商店类型的
不同的安装类型是不能共存的
微软Office每隔几年就是推出一个年代版本,比如现在常见的有Office2003、2007、2010、2013、2016、2019和2021,都是以年代命名的
这些以年代命名的office版本一旦发布后,功能就基本定型了,也就是说微软不再对其进行功能更新,只进行安全更新
这里有一个比较特殊的版本就是Office365,Office365是一个长期维护版本,一些新功能都会先在Office365中更新,然后经过两年的市场验证,一旦功能稳定,这个365就会衍生出一个年代版本的Office,循环往复,我们就可以看到有Office2016、2019等年代版本的Office
所以从功能上来说,Office 365>Office 2021>Office 2019>Office 2016>Office 2013>Office 2010……
从发行版本上区分:比如Office2016有8个版本,分别是:个人版、家庭学生版、家庭商业版、标准版、小型企业版、专业版、专业增强版和企业版;按安装包来分又有零售版和批量版(也称大客户版),不同类型的Office激活方式也不同,但是相同版本号的Office的功能是一样的,比如零售版的Office2016和批量版的Office 2016功能是一模一样的
如何查看我使用的是哪个版本的 Office:
- 打开任何 Office 应用程序,如 Word 或 Excel,然后选择帐户。注意: 如果你没有看到帐户或你已打开一个文件或文档,请从菜单中,选择文件,然后从左侧的列表中选择帐户或帮助。
- 在“产品信息”下,你将看到你的 Office 产品名,在某些情况下,还可看到完整的版本号。
- 1 - 产品名,例如 Microsoft 365 专业增强版或 Office 家庭和学生版。
- 2 - 版本号,其中包括版本、 内部版本号和如“即点即用”或 Windows 应用商店等安装类型。
- 有关详细信息,如位版本,选择关于 Excel。 此时会打开一个对话框,显示完整的版本号和位版本 (32 位 或 64 位)。
附表
各操作系统KMS激活方式所对应的激活码
Windows Server 半年频道版本
Windows Server 版本 1809
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server Datacenter | 6NMRW-2C8FM-D24W7-TQWMY-CWH2D |
Windows Server Standard | N2KJX-J94YW-TQVFB-DG9YT-724CC |
Windows Server 版本 1803
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server Datacenter | 2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG |
Windows Server Standard | PTXN8-JFHJM-4WC78-MPCBR-9W4KR |
Windows Server 版本 1709
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server Datacenter | 6Y6KB-N82V8-D8CQV-23MJW-BWTG6 |
Windows Server Standard | DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 |
Windows Server LTSC/LTSB 版本
Windows Server 2019
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server 2019 Datacenter | WMDGN-G9PQG-XVVXX-R3X43-63DFG |
Windows Server 2019 Standard | N69G4-B89J2-4G8F4-WWYCC-J464C |
Windows Server 2019 Essentials | WVDHN-86M7X-466 P 6-VHXV7-YY726 |
Windows Server 2016
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server 2016 Datacenter | CB7KF-BWN84-R7R2Y-793K2-8XDDG |
Windows Server 2016 Standard | WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY |
Windows Server 2016 Essentials | JCKRF-N37P4-C2D82-9YXRT-4M63B |
Windows 10 中,所有受支持的半年频道版本
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 10 专业版 | W269N-WFGWX-YVC9B-4J6C9-T83GX |
Windows 10 专业版 N | MH37W-N47XK-V7XM9-C7227-GCQG9 |
Windows 10 专业工作站 | NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J |
Windows 10 专业工作站 N | 9FNHH-K3HBT-3W4TD-6383H-6XYWF |
Windows 10 专业教育版 | 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y |
Windows 10 专业教育版 N | YVWGF-BXNMC-HTQYQ-CPQ99-66QFC |
Windows 10 教育版 | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
Windows 10 教育版 N | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
Windows 10 企业版 | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
Windows 10 企业版 N | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
Windows 10 企业版 G | YYVX9-NTFWV-6MDM3-9PT4T-4M68B |
Windows 10 企业版 G N | 44RPN-FTY23-9VTTB-MP9BX-T84FV |
Windows 10 LTSC/LTSB 版本
Windows 10 LTSC 2019
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 10 企业版 LTSC 2019 | M7XTQ-FN8P6-TTKYV-9D4CC-J462D |
Windows 10 企业版 N LTSC 2019 | 2NFX-8DJQP-P6BBQ-THF9C-7CG2H |
Windows 10 LTSB 2016
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 10 企业版 LTSB 2016 | DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ |
Windows 10 企业版 N LTSB 2016 | FFDN-GRT3P-VKWWX-X7T3R-8B639 |
Windows 10 LTSB 2015
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 10 企业版 2015 长期服务 | WNMTR-4C88C-JK8YV-HQ7T2-76DF9 |
Windows 10 企业版 2015 长期服务 N | 2F77B-TNFGY-69QQF-B8YKP-D69TJ |
Windows Server 早期版本
Windows Server 2012 R2
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server 2012 R2 Server Standard | D2N9P-3P6X9-2R39C-7RTCD-MDVJX |
WindowsServer 2012 R2 Datacenter | W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 |
WindowsServer 2012 R2 Essentials | KNC87-3J2TX-XB4WP-VCPJV-M4FWM |
Windows Server 2012
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server 2012 | BN3D2-R7TKB-3YPBD-8DRP2-27GG4 |
Windows Server 2012 N | 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY |
Windows Server 2012 单语言版 | 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ |
Windows Server 2012 特定国家/地区版 | 4K36P-JN4VD-GDC6V-KDT89-DYFKP |
Windows Server 2012 Server Standard | XC9B7-NBPP2-83J2H-RHMBY-92BT4 |
Windows Server 2012 MultiPoint Standard | HM7DN-YVMH3-46JC3-XYTG7-CYQJJ |
Windows Server 2012 MultiPoint Premium | XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G |
Windows Server 2012 Datacenter | 48HP8-DN98B-MYWDG-T2DCC-8W83P |
Windows Server 2008 R2
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Server 2008 R2 Web 版 | 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 |
Windows Server 2008 R2 HPC 版 | TT8MH-CG224-D3D7Q-498W2-9QCTX |
WindowsServer 2008 R2 Standard | YC6KT-GKW9T-YTKYR-T4X34-R7VHC |
WindowsServer 2008 R2 企业版 | 489J6-VHDMP-X63PK-3K798-CPX3Y |
WindowsServer 2008 R2 Datacenter | 74YFP-3QFB3-KQT8W-PMXWJ-7M648 |
面向基于 Itanium 系统的 Windows Server 2008 R2 | GT63C-RJFQ3-4GMB6-BRFB9-CB83V |
Windows Server 2008
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows Web Server 2008 | WYR28-R7TFJ-3X2YQ-YCY4H-M249D |
Windows Server 2008 Standard | TM24T-X9RMF-VWXK6-X8JC9-BFGM2 |
不带 Hyper-V 的 Windows Server 2008 Standard | W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ |
Windows Server 2008 企业版 | YQGMW-MPWTJ-34KDK-48M3W-X4Q6V |
不带 Hyper-V 的 Windows Server 2008 企业版 | 39BXF-X8Q23-P2WWT-38T2F-G3FPG |
Windows Server 2008 HPC | RCTX3-KWVHP-BR6TB-RB6DM-6X7HP |
Windows Server 2008 Datacenter | 7M67G-PC374-GR742-YH8V4-TCBY3 |
不带 Hyper-V 的 Windows Server 2008 Datacenter | 22XQ2-VRXRG-P8D42-K34TD-G3QQC |
面向基于 Itanium 系统的 Windows Server 2008 | 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK |
早期版本的 Windows
Windows 8.1
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 8.1 专业版 | GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 |
Windows 8.1 专业版 N | HMCNV-VVBFX-7HMBH-CTY9B-B4FXY |
Windows 8.1 企业版 | MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 |
Windows 8.1 企业版 N | TT4HM-HN7YT-62K67-RGRQJ-JFFXW |
Windows 8
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 8 专业版 | NG4HW-VH26C-733KW-K6F98-J8CK4 |
Windows 8 专业版 N | XCVCF-2NXM9-723PB-MHCB7-2RYQQ |
Windows 8 企业版 | 32JNW-9KQ84-P47T8-D8GGY-CWCK7 |
Windows 8 企业版 N | JMNMF-RHW7P-DMY6X-RF3DR-X2BQT |
Windows 7
操作系统版本 | KMS 客户端安装密钥 |
---|---|
Windows 7 专业版 | FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 |
Windows 7 专业版 N | MRPKT-YTG23-K7D7T-X2JMM-QY7MG |
Windows 7 专业版 E | W82YF-2Q76Y-63HXB-FGJG9-GF7QX |
Windows7 企业版 | 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH |
Windows 7 企业版 N | YDRBP-3D83W-TY26F-D46B2-XCKRJ |
Windows 7 企业版 E | C29WB-22CC8-VJ326-GHFJW-H9DH4 |
花絮
我反复装了100+次各种版本的Windows和各种版本的Office,只为了实验……

注:
如果使用了2016的激活证书,则PowerPoint不能创建平滑
切换效果,在 PowerPoint 中使用平滑切换
激活通道决定了使用LTSC还是专业版等的激活证书或者是导致极少部分功能的显示位置不同
若要创建平滑切换,需要 PowerPoint 网页版、PowerPoint 2019 或 Microsoft 365 专属 PowerPoint。 其他版本的 PowerPoint(如下所示)可以播放平滑切换,但无法创建它们。 我们建议你获取 Office 365 订阅,了解最新的 Office 功能,包括平滑。
PowerPoint 版本 | 你可以用平滑功能来做些什么 |
---|---|
PowerPoint for Office 365,1511 版或更新版本PowerPoint for Office 365 for Mac,15.19 版或更新版本 | 创建和播放平滑切换 |
PowerPoint 2021 PowerPoint 2021 for Mac | 创建和播放平滑切换 |
PowerPoint 2019PowerPoint 2019 for Mac | 创建和播放平滑切换 |
PowerPoint 2016,通过即点即用1 版本 1511(内部版本 16.0.4358.1000)或更新版本安装 | 播放平滑切换 |
PowerPoint 2016,通过 Microsoft 安装程序1 (MSI) 内部版本 16.0.4358.1000 或更新版本安装,已安装Office更新2 | 播放平滑切换 |
PowerPoint 2016 for MacPowerPoint 2013PowerPoint for Mac 2011PowerPoint 2010PowerPoint 2007 | 播放淡出切换,而不是平滑切换。 |
PowerPoint 网页版 | 创建和播放平滑切换 |
PowerPoint for AndroidPowerPoint for iOSPowerPoint Mobile for Windows | 创建和播放平滑切换在这些移动应用中创建平滑切换需要Microsoft 365订阅。 |
2 必须安装以下 Office 更新。 没有它们,PowerPoint 2016 无法播放平滑切换,而会播放淡出切换。
我的 Office 是即点即用还是基于 MSI?
- 打开 Office 应用程序,如 Outlook 或 Word。
- 转到“文件”>“帐户”或“Office 帐户”。
- 如果出现“更新选项”项,则为即点即用安装。 如果未显示该项,则为基于 MSI 的安装。
如果用过 Keynote 中的“神奇移动”功能,会发现平滑功能可以做同样的事情。
Comments NOTHING