在 Linux 平台搭建自己的 KMS 服务器,顺便也包括讲一下我在华为云的服务器上没办法运行binary然后自己编译的方法。
简介
KMS 即 Key Management Service,密钥管理服务。是微软为应对大规模的组织内部计算机激活所开发的一种批量激活方式。KMS服务几乎可以激活从 Windows Vista 、 Office 2010 开始的全部 Microsoft 产品。
搭建在Windows上的KMS服务非常简单,Microsoft官方也有非常详细的文档,这里就不再赘述。Github用户“Wind4”则在Github上开源了“vlmcsd”,使得KMS服务可以运行在Linux主机和嵌入式主机上。
不过,需要注意的是,使用此方法激活并不是正版,正版需要前往微软商城购买,该方案激活的产品只能说是正确激活的产品,不享受Microsoft和主机制造商的任何增值服务;KMS 只能激活批量授权 (Volume License) 产品,无法激活零售 (Retail) 产品;KMS 激活有效期也只有 180 天 (常规版本) ,但是一般会连接 KMS 服务器进行自动续期。
您所根据本文执行的任何操作均与本站和本文作者无关,本文仅作技术交流,本站和本文作者不承担任何后果,该方案可能明确违反微软的TOS,请三思而行。
服务端搭建
项目地址:Wind4/vlmcsd。
常规搭建
vlmcsd作者在上面仓库的Release中提供了预编译的二进制文件(Pre-built binary),可以覆盖绝大多数平台和操作系统,解压binary.tar.gz
后找到服务端所对应的平台运行即可。
其中binary.tar.gz
里面的文件夹层级为操作系统-CPU架构-(终端类型)-二进制文件。
Linux平台下找到对应的二进制文件加运行权限后直接运行即可:
1 | ./vlmcsd |
也可以修改一下监听地址和端口:
1 | ./vlmcsd -L 0.0.0.0:54188 |
非常规搭建
很不幸我的服务器是armv8架构的,并不在他预编译的列表中,这个时候就需要自行编译,好在是非常简单。
不过作者也提到了,最好的binary文件永远是在自己的操作系统下和自己的工具链下编译的(The best binary is compiled by yourself using a toolchain that isoptimized for your system or device in every respect.)。
首先安装gcc:
1 | sudo apt install gcc make |
然后clone仓库:
1 | git clone https://github.com/Wind4/vlmcsd.git |
最后进入编译即可
1 | cd vlmcsd/ |
编译成功后二进制文件在vlmcsd/bin/
目录下,vlmcsd
就是。
Systemd守护运行
注意修改可执行文件位置。
1 | [Unit] |
服务端检测
这一步主要是检验服务端是否搭建成功,毕竟除了上述二进制文件的运行外还需要开放防火墙和端口等额外操作。
在Windows设备上运行如下命令即可检测是否有效:
1 | .\vlmcsd\binaries\Windows\intel\vlmcs-Windows-x64.exe <服务器地址:端口号> |
客户端激活
Windows
首先需要找到你客户端所对应的 GVLK 密钥,可以在Microsoft Learn页面上寻找,也可以到搜索引擎直接搜索。
取得 GVLK 密钥后在客户端计算机打开命令提示符,并执行如下命令:
1 | slmgr.vbs /ipk <GVLK 密钥> |
举例:
1 | slmgr.vbs /ipk N69G4-B89J2-4G8F4-WWYCC-J464C |
如果 GVLK 密钥符合操作系统且 KMS 服务器正常则此时系统应该已经被正确激活,设置-更新和安全-激活中应该显示“已经通过使用你所在组织的激活服务激活 Windows ”,也可以使用slmgr.vbs /dlv
命令检查激活状态。
Windows激活信息查看
slmgr.vbs -dlv
:最为详尽的激活信息,包括:激活ID、安装ID、激活截止日期;slmgr.vbs -dli
:操作系统版本、部分产品密钥、许可证状态;slmgr.vbs -xpr
:是否永久激活。
Office
推荐使用Office Tool对Office进行激活。Office Tools 可以自动安装 GVLK 并执行激活任务。
和Windows的大同小异,在C:\Program Files\Microsoft Office\Office16
目录下寻找ospp.vbs
,然后按照如下执行即可:
1 | cscript "ospp.vbs" /inpkey:<GVLK 密钥> |
Office 的 GVLK 密钥参见用于 KMS 和基于 Active Directory 的 Office、Project 和 Visio 激活的 GVLK。