vlmcsd虚拟机自建KMS服务器激活Windows

vlmcsd虚拟机自建KMS服务器激活Windows教程

背景

KMS是微软为企业用户提供的一种激活方式。企业购买微软的授权,在内网架设KMS激活服务器,需要激活的机器统一安装VOL版本的序列号,通过内网访问KMS激活服务器即可激活。然而,由于KMS激活方式不会与微软通信进行二次验证,因此可以通过自行架设服务模拟KMS,为自己的VOL系统进行KMS激活,达到免费激活Windows的目的。

许多网站提供了免费的KMS激活服务器地址,但这些服务器并不稳定,往往下次激活时服务已不可用,需要重新寻找其他服务器;并且时常有KMS服务器管理员对所激活系统管理访问权限的安全性担忧(即使在微软的文档中并没有找到可供KMS服务器访问激活系统的相关指令)。

在上述背景下本教程使用开源的KMS激活服务器替代品vlmcsd,在自行创建的Vmware虚拟机或linux真机上运行KMS服务,并以此激活Windows系统。

说明:

  1. KMS激活方式每隔180天需要重新激活一次,如果认为重复操作麻烦请使用其他方式。
  2. vlmcsd也提供了Windows版本,但是需要注册为服务程序。本教程只介绍在Linux运行KMS服务的方法。

前期准备

  1. 一台需要KMS激活的Windows宿主机,并且安装的是能够KMS激活的VOL序列号。
  2. vlmcsd的github发布页面下载最新的binaries.tar.gz(目前最后一个版本更新于2020.03.30,很久没有维护,但是功能仍然可用)

使用虚拟机服务器镜像

解压binaries.tar.gz,会出现两个文件夹,binaries和floppy。其中floppy文件夹包括了打包好带虚拟机镜像。

  1. 打开Vmware Player,点击文件菜单-“打开…”
  2. 选择解压得到的floppy目录内的.vmx文件,此时会自动导入一个名为vlmcsd embedded的虚拟机
  3. 右键该虚拟机,将其网络配置改为“仅主机”
  4. 启动该虚拟机

启动后的输出如下图所示,从红框所示处记录服务器的局域网IP地址,端口默认为1688。

使用已有的linux虚拟机/真机

如果你需要在现有的linux上启动KMS服务器,以ubuntu为例。

也可在android手机上下载termux,更加方便。

将binaries.tar.gz复制到ubuntu桌面,在桌面打开终端,使用如下命令解压:

1
tar -xvf binaries.tar.gz

解压后打开得到的binaries文件夹,

  1. 里面包括不同系统,打开我们所使用的linux文件夹,如果是Android手机则打开android。
  2. 里面包括不同架构。例如我的电脑是intel CPU,就继续打开intel文件夹。
  3. 里面包括不同编译选项,一般选static即可。

在最后打开的文件夹会有几个可执行文件,分成vlmcs,vlmcsd,vlmcsdmulti三种。其中vlmcsd是我们所需的kms server, vlmcs是一个测试用的简易客户端程序,vlmcsdmulti是将两者编译到一起。

这里我们只使用vlmcsd。根据你的系统选择x64还是x86。例如我的ubuntu是x86,就通过如下命令启动kms服务器,其中-D选项是在当前终端前台运行,-P选项是指定服务的端口:

1
./vlmcsd-x86-musl-static -D -P 1688

如果是安卓手机,则根据自己手机的架构版本号选择armv[x]。

如果遇到bash: ./vlmcsd-x64-musl-static: 无法执行二进制文件: 可执行文件格式错误,说明x64/x86选错了。

现在服务已经启动了。但要在宿主机访问服务,还需要查看服务器的ip地址。新开一个终端,执行:

1
2
3
4
5
$ ifconfig | grep inet        
inet 192.168.xxx.xxx  netmask 255.255.255.0  broadcast 192.168.98.255
inet6 fe80::5817:e459:b29c:9c9c  prefixlen 64  scopeid 0x20<link>
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>

如果linux和待激活的机器在同一个局域网,这里记录形如192.168.xx.xx的局域网IP即可。

宿主机激活

无论是上述哪种方法,你都应已经启动了一个KMS服务器,并获得了其IP和端口,

现在回到Windows系统的宿主机,按win+R,输入cmd后回车,在命令行终端中输入:

1
2
3
slmgr /skms 192.168.xx.xx:1688 
# 上面的IP和端口替换为你实际KMS服务器的IP和端口
slmgr /ato

然后耐心等待一段时间,如果分别弹出成功提示,则激活成功。

如果弹出如下错误提示,说明宿主机无法连接到服务器,需要检查一下vmware的网络配置,或者linux的防火墙。

在激活完成后可以关闭虚拟机,KMS有效期180天,前面的slmgr /skms 192.168.xx.xx:1688 命令执行后会自动保存服务器地址,KMS到期后只需再次启动虚拟机,然后执行slmgr /ato即可。

Office激活

KMS也可用于Office。首先确认你安装的office是批量激活版本才可适用。

找到office安装的路径,例如C:\Program Files (x86)\Microsoft Office\Office16。在该目录下应该能找到一个OSPP.VBS的文件。

然后右键开始按钮,选择“windows powershell**(管理员)**”,再cd到上面的路径,再执行激活命令。

1
2
3
4
5
6
#cd 进入路径(注意双引号)
cd "C:\Program Files (x86)\Microsoft Office\Office16"
#设置激活服务器地址
cscript .\OSPP.VBS /sethst:192.168.xx.xx:1688
#执行激活
cscript .\OSPP.VBS /act

成功激活的输出应当类似如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation保留所有权利

---Processing--------------------------
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: [已编辑]
LICENSE NAME: Office 21, Office21ProPlus2021VL_KMS_Client_AE edition
LICENSE DESCRIPTION: Office 21, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: [已编辑]
<Product activation successful>
---------------------------------------
---------------------------------------
---Exiting-----------------------------

如果出现Error Code 0x80070005的报错说明你没有用管理员权限打开powershell。

0%