文章目录

前言

首先申明,有条件请支持正版。

最近总是有时候卡死之类的,然后一看进程,Mircosoft软件保护平台服务,就是小马KMS的进程啦,而且我下载到的还是包装后的小马KMS,被包装了一个脚本,每次KMS周期运行的时候,就会修改浏览器指向hao123……而且360还时不时报毒杀KMS,心累。网上已经有纯净版小马KMS了,大致就是去掉了包装脚本的钩子,48下载积分……

所以是时候自己搭建KMS服务器了,找了好久终于找到这个帖子《windows激活工具(win8,win10)》,研究下脚本就知道它是访问的远程KMS服务器:

大部分都失效了,沧水(http://kms.cangshui.net/)的还能用:

于是找到了《可用于激活 windows 10 8.1 8 7 2008 2012等众多版本,这简单几个步骤带你完成》,进一步的,找到了github源代码:https://github.com/Wind4/vlmcsd,声称是一个用C写的KMS,不是MIT或者APACHE的许可,是NONE许可,保留了所有的权限(话说用了GNU还这样…)。不过既然敢公开源代码,那程序会比较安全。由于从windows8版本开始,微软的激活方式越来越复杂,可以预见需要花很多很多时间看代码,所以后续有空再去研究原理吧。最新的Release是2018年10月24号发布的vlmcsd-1112-2018-10-20-Hotbird64,已经可以支持Windows 10 1809 + Windows Server 2019 + Office 2019了。

快速构建和激活

如果没有那么多时间看详细步骤,可以直接使用我制作好的docker镜像。

0、前提:需要安装Docker环境,可参考《Debian8安装Docker和DockerCompose》

1、服务器上运行KMS

# 拉取我制作的镜像
docker pull bewindoweb/vlmcsd_kms
# 以交互模式it、后台运行d、主机端口1688映射到容器端口1688,进程如果挂掉自动尝试5次重启
docker run -itd -p 1688:1688 --restart=on-failure:5  bewindoweb/vlmcsd_kms

2、Windows激活(管理员运行CMD)

# 1、卸载已有激活key
slmgr.vbs -upk 
# 2、安装新的GVLK
# Windows 7 专业版:FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
# Windows 8 专业版:NG4HW-VH26C-733KW-K6F98-J8CK4
# Windows 8.1 专业版:GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
# Windows 10 专业版:W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr.vbs -ipk NG4HW-VH26C-733KW-K6F98-J8CK4
# 3、填写KMS服务器域名或者IP地址(会默认1688端口激活)
slmgr.vbs -skms 106.12.***.***
# 4、尝试连接KMS服务器在线激活(attempt online)
slmgr.vbs -ato 
# 5、显示激活信息
slmgr.vbs -dlv

3、Office激活(管理员运行CMD)

# 1、进入安装目录
cd C:\Program Files\Microsoft Office\Office15
# 2、立刻尝试激活
cscript ospp.vbs /act
# 3、显示激活信息
cscript ospp.vbs /dstatus

4、Windows、Office一键激活BAT脚本下载:百度网盘(密码: ccpr)

双击运行即可:

Debian 8 上构建KMS Docker镜像详细步骤

当然你完全可以借鉴所有的构建步骤,来直接在服务器安装而不使用Docker。

1、拉取Debian8镜像

$(宿主) docker pull debian:8
# 如果需要的话,你可以使用一些其他命令
# docker search debian 搜索debian镜像
# docker pull debian:jessie 和拉取8是一样的效果

2、跑一个容器

$(宿主)  docker run -itd debian:8
7b7b887cc6eb038618be99dd7bebba6c7a4be474c407579b261902d431b350e8

3、把kms程序拷贝进去

# 1、复制程序到容器
$(宿主) docker cp /home/softwares/binaries.tar.gz 7b7:/root/binaries.tar.gz
# 其中7b7是容器ID,可以只写到能识别的长度就可以了
# 这个二进制包360还会报毒……
# 如果网速快也可以直接:
# wget --no-check-certificate https://github.com/Wind4/vlmcsd/releases/download/svn1112/binaries.tar.gz 
# 再拷贝进去,如果不快直接FTP传吧
# 或者直接在容器里wget,官方镜像为了做得小比较单纯,连vi都没有,更别说wget了
# 你可能需要apt-get update && apt-get install wget
# 2、然后进入容器
$(宿主) docker exec -it 7b7 /bin/bash
# 3、解压
$(容器) cd /root
$(容器) tar -zxvf binaries.tar.gz && mv binaries kms
# 4、把bin的路径添加到环境变量,赋予执行权限
$(容器) echo "export PATH=/root/kms/Linux/intel/static:\$PATH" > /etc/profile.d/vlmcsd.sh 
$(容器) source /etc/profile.d/vlmcsd.sh 
$(容器) chmod +x /root/kms/Linux/intel/static/* 
# 5、开机启动脚本(容器是不会执行的哦)
$(容器) echo "vlmcsd-x64-musl-static" >> /etc/rc.local
# 6、启动KMS
$(容器) vlmcsd-x64-musl-static
# 7、退出容器
$(容器) exit

4、制作新镜像,暴露端口

# 1、commit提交新版本镜像,取名vlmcsd_kms
# commit就是git中的同样概念
$(宿主) docker commit 7b7 vlmcsd_kms
# 你可能会想查看镜像:docker image ls
# REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# vlmcsd_kms          latest              60d808c91480        40 seconds ago      188MB
# debian              8                   bb64860610f6        2 weeks ago         127MB
# 2、停掉之前的容器
$(宿主) docker stop 7b7
# 3、启动新容器,暴露KMS专用的1688端口,映射到宿主机1688端口
$(宿主) docker run -itd -p 1688:1688 vlmcsd_kms
dd5559a9777394b4ffaf0b0b22f0c077c0f5ed69f64940e35dc2708e6ef70783
# 4、重新进入容器,执行制作新镜像丢失掉的命令
$(宿主) docker exec -it dd5 /bin/bash
$(容器) source /etc/profile.d/vlmcsd.sh 
$(容器) vlmcsd-x64-musl-static
$(容器) exit
# 你可能想看容器内的服务是否正常
# 容器内lsof -i:1688看看有没有监听即可
# 或者宿主机上docker inspect dd5
# ....
#    "HostPort": "1688"
# .....
# 你可能想看宿主机映射的TCP是否正常
# lsof -i:1688 会看到docker监听
# docker-pr 40213 root    4u  IPv6 3082076      0t0  TCP *:1688 (LISTEN)

5、开放宿主机端口

# 1、开放宿主机端口
$(宿主) iptables -A INPUT -p tcp --dport 1688 -j ACCEPT
# 你可能还需要用到 
# iptables -L 查看iptables
# iptables -nL --line-number 显示行号
# iptables -D INPUT 1 删除INPUT第一条规则
# 2、持久化宿主机iptables
$(宿主) apt-get install iptables-persistent
# 你可能还需要:
# iptables-save >/etc/iptables/rules.v4       保存规则
# ip6tables-save >/etc/iptables/rules.v6     保存规则
# iptables-restore < /etc/iptables/rules.v4   加载规则
# ip6tables-restore < /etc/iptables/rules.v6 加载规则

6、开放服务器端口

我的入站出站规则都是全开放……你可以只开放1688的TCP端口,还可以限制IP。

你可能需要测试一下连通性:http://coolaf.com/tool/port

不连通请检查:容器内服务是否启动,docker映射是否正确,宿主机防火墙iptables是否设置好,服务器安全规则是否设置好。

用KMS激活Windows

激活前提是windows是VOL(团体批量许可证)版本,只要你是网上下载的操作系统基本都是VOL版本,也很少有电脑厂商会捆绑OEM版的windows系统(OEM版本本身就是激活的,只要你在厂商的电脑上跑),都随便下载一个VOL版本装。

用管理员模式打开CMD:

# 1、卸载已有激活key
slmgr.vbs -upk 
# 2、安装新的GVLK
slmgr.vbs -ipk NG4HW-VH26C-733KW-K6F98-J8CK4
# 3、填写KMS服务器域名或者IP地址(会默认1688端口激活)
slmgr.vbs -skms 106.12.***.***
# 4、尝试连接KMS服务器在线激活(attempt online)
slmgr.vbs -ato 
# 5、显示激活信息
slmgr.vbs -dlv

第2步的通用批量许可密钥 (GVLK),可以在微软官网去查,有关GVLK可以去看这个KMS软件源码包中的说明文档man/vlmcsd.7.pdf。这里列出常用的:

操作系统 GVLK 
 Windows 7 专业版 FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
 Windows 8 专业版 NG4HW-VH26C-733KW-K6F98-J8CK4
 Windows 8.1 专业版 GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
 Windows 10 专业版 W269N-WFGWX-YVC9B-4J6C9-T83GX

成功后你会看到:

180天6个月的使用期,只要确保服务器不挂,它会自动续期的,当然你也可以手动执行,它就会按当前时间又延长6个月。

用KMS激活OFFICE

同样的,从网上下载的基本都是VOL版本(下载的ISO文件 cn打头的是零售版,sw打头的是VOL版,由于大部分都是XXKMS激活,所以SW流传很广……)

如果你已经装上了,可以查看是否有VOLUME字样:

方法是进入安装目录:

# 根据版本不同,末尾的数字不同,而且要看你安装的位置在哪儿,一般是C:\Program Files\Microsoft Office\Office15
cd E:\Office2013\Office15
cscript ospp.vbs /dstatus

1、安装Key

这个GVLK是真心难找啊,这里放一些常用的,基本常用的就是Office套件+Visio(因为Visio是单独收费的):

Office版本 GVLK 备注
 Office Professional Plus 2010 VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB
 Visio Professional 2010 7MCW8-VRQVK-G677T-PDJCM-Q8TCP
 Office 2013 Professional Plus YC7DK-G2NP3-2QQC3-J6H88-GVGXT经过验证√
 Visio 2013 Professional C2FG9-N6J68-H8BTJ-BW3QX-RM3B3

经过验证√

 Office Professional Plus 2016 XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
 Visio Professional 2016 PD3-PC-RHNGV-FXJ29-8JK7D-RJRJK

2016会更复杂一些,2010和2013比较简单,只需要进入安装目录,然后把key装上就可以了:

cd E:\Office2013\Office15
cscript ospp.vbs /inpkey:XXXXXXXXXXXX

2、用管理员模式打开CMD,设置kms服务器地址:

cd E:\Office2013\Office15
cscript ospp.vbs /sethst:106.12.***.***

3、立刻尝试激活:

cscript ospp.vbs /act

4、查看激活效果

cscript ospp.vbs /dstatus

BAT脚本的编写

参考了沧水的脚本骨架(并且已征得作者同意进行修改和重新发布),我改动了很多:

1)修复BUG:卸载的时候Office默认路径可能不在C盘,比如我就安装在E盘……

2)修复BUG:Office2010、Office2013没有提供GVLK,估计作者用得是2016吧,只写了2016的

3)增加功能:一键激活Windows和Office,为了实现这个功能,需要把所有goto改成call+goto:EOF…

4)增加功能:增加大量的信息提示

只验证了win8+office2013,其他分支没有去测试,需要靠大家来在使用过程中遇到问题来评论……

:: ----------------------------------- 1、初始化 -----------------------------------
@echo off
::mode con cols=75 lines=300
title Windows/Office KMS激活工具
setlocal EnableDelayedExpansion&color 70 & cd /d "%~dp0"
%1 %2
ver|find "5.">nul && goto :start
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :start","","runas",1)(window.close)&goto :eof

:start
echo =========================== 运行说明 ==================================
echo 1、本脚本需要右键管理员CMD运行
echo 2、最好自行搭建KMS服务器,搭建方法见http://www.bewindoweb.com/240.html
echo 3、有问题请将显示的出错信息发送邮件到:bewindoweb1995@foxmail.com
echo 4、参考了沧水KMS脚本骨架,原脚本参看http://kms.cangshui.net/#bat
echo 5、Windows支持2008/vista/7/8/8.1/10,Office支持2010、2013、2016
echo =======================================================================

echo 【A】一键激活Windows和多版本Office(使用沧水KMS)
echo 【B】一键激活Windows和多版本Office(使用自定义KMS)
echo 【C】激活Windows
echo 【D】激活多版本Office
echo 【E】清除Windows的KMS
echo 【F】清除多版本Office的KMS
echo 【G】退出

set defaultKMS=http://kms.cangshui.net/
set /p xuanze= 请输入你的选择:
if /i "%xuanze%"=="a" goto startActiveAllWithDefaultKMS
if /i "%xuanze%"=="b" goto startActiveAllWithPrivateKMS
if /i "%xuanze%"=="c" goto startActiveWindows
if /i "%xuanze%"=="d" goto startActiveOffice
if /i "%xuanze%"=="e" goto startCleanWindowsKMS
if /i "%xuanze%"=="f" goto startCleanOfficeKMS
if /i "%xuanze%"=="g" exit
cls
goto start

:: ----------------------------------- 2、通用函数 -----------------------------------
:info
echo.
echo *************************** %1 ***************************
echo %2
echo ****************************************************************
echo.
goto :EOF

:infoExit
call :info %1 %2
goto end

:end
pause
exit 

:setKMSServer
if DEFINED KMSServer (echo KMS服务器为:!KMSServer! ) else ( 
  set /p KMSServer= 请输入KMS服务器域名或IP,如不输入默认直接使用沧水KMS:
  if "!KMSServer!"=="" set KMSServer=%defaultKMS%
  echo KMS服务器成功设置为:!KMSServer!
)
goto :EOF

:checkNetwork
echo 正在检查本机网络情况耐心等待……
ping https://www.baidu.com | find "超时"  > NUL && call :infoExit 网络故障 无法连接到服务器,请检查网络是否通畅。
ping https://www.baidu.com | find "目标主机"  > NUL &&  call :infoExit 网络故障 无法连接到服务器,请检查网络是否通畅。
echo 本机网络良好
goto :EOF


:: ----------------------------------- 3、主要脚本 -----------------------------------
:startActiveAllWithDefaultKMS
set KMSServer=%defaultKMS%
call :windows
call :office
goto end

:startActiveAllWithPrivateKMS
set KMSServer=
call :windows
call :office
goto end

:startActiveWindows
call :windows
goto end


:startActiveOffice
call :office
goto end

:: ----------------------------------- 4、Windows激活 -----------------------------------
:windows
call :checkNetwork
call :setKMSServer
if not DEFINED finished ( ver | find "6.0." > NUL &&  call :winvista )
if not DEFINED finished ( ver | find "6.1." > NUL &&  call :win7 )
if not DEFINED finished ( ver | find "6.2." > NUL &&  call :win8 )
if not DEFINED finished ( ver | find "6.3." > NUL &&  call :win81 )
if not DEFINED finished ( ver | find "10.0." > NUL &&  call :win10 )
if not DEFINED finished ( call :infoExit 激活失败 Windows激活失败,未找到合适的NT6系统,可能是WinXP或Win2003。 )
goto :EOF

:winvista
echo 当前操作系统为Windows Vista/2008。
set Business=YFKBB-PQJJV-G996G-VWGXY-2V3X8
set BusinessN=HMBQG-8H2RH-C77VX-27R82-VMQBT
set Enterprise=VKK3X-68KWM-X2YGT-QR4M6-4BWMV
set EnterpriseN=VTC42-BM838-43QHV-84HX6-XJXKV
set ServerWeb=WYR28-R7TFJ-3X2YQ-YCY4H-M249D
set ServerStandard=TM24T-X9RMF-VWXK6-X8JC9-BFGM2
set ServerStandardV=W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
set ServerEnterprise=YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
set ServerEnterpriseV=39BXF-X8Q23-P2WWT-38T2F-G3FPG
set ServerWeb=RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
set ServerDatacenter=7M67G-PC374-GR742-YH8V4-TCBY3
set ServerDatacenterV=22XQ2-VRXRG-P8D42-K34TD-G3QQC
set ServerEnterpriseIA64=4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
call :ActWindows
goto :EOF
:win7
echo 当前操作系统为Windows 7/2008 R2。
set Professional=FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
set ProfessionalN=MRPKT-YTG23-K7D7T-X2JMM-QY7MG
set ProfessionalE=W82YF-2Q76Y-63HXB-FGJG9-GF7QX
set Enterprise=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
set EnterpriseN=YDRBP-3D83W-TY26F-D46B2-XCKRJ
set EnterpriseE=C29WB-22CC8-VJ326-GHFJW-H9DH4
set ServerWeb=6TPJF-RBVHG-WBW2R-86QPH-6RTM4
set ServerHPC=TT8MH-CG224-D3D7Q-498W2-9QCTX
set ServerStandard=YC6KT-GKW9T-YTKYR-T4X34-R7VHC
set ServerEnterprise=489J6-VHDMP-X63PK-3K798-CPX3Y
set ServerDatacenter=74YFP-3QFB3-KQT8W-PMXWJ-7M648
set ServerEnterpriseIA64=GT63C-RJFQ3-4GMB6-BRFB9-CB83V
call :ActWindows
goto :EOF
:win8
echo 当前操作系统为Windows 8/2012。
set Professional=NG4HW-VH26C-733KW-K6F98-J8CK4
set ProfessionalN=XCVCF-2NXM9-723PB-MHCB7-2RYQQ
set Core=BN3D2-R7TKB-3YPBD-8DRP2-27GG4
set Enterprise=32JNW-9KQ84-P47T8-D8GGY-CWCK7
set EnterpriseN=JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
set CoreN=8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
set CoreSingleLanguage=2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
set CoreCountrySpecific=4K36P-JN4VD-GDC6V-KDT89-DYFKP
set ServerMultiPointPremium=XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
set ServerMultiPointStandard=HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
set ServerStandard=XC9B7-NBPP2-83J2H-RHMBY-92BT4
set ServerDatacenter=48HP8-DN98B-MYWDG-T2DCC-8W83P
call :ActWindows
goto :EOF
:win81
echo 当前操作系统为Windows 8.1。
set Professional=GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
set ProfessionalN=HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
set Enterprise=MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
set EnterpriseN=TT4HM-HN7YT-62K67-RGRQJ-JFFXW
set ServerSolution=KNC87-3J2TX-XB4WP-VCPJV-M4FWM
set ServerStandard=D2N9P-3P6X9-2R39C-7RTCD-MDVJX
set ServerDatacenter=W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
set EmbeddedIndustry=32JNW-9KQ84-P47T8-D8GGY-CWCK7
call :ActWindows
goto :EOF
:win10
echo 当前操作系统为Windows 10/Server 2016。
set Core=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
set CoreCountrySpecific=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR
set CoreN=3KHY7-WNT83-DGQKR-F7HPR-844BM
set CoreSingleLanguage=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH
set Professional=W269N-WFGWX-YVC9B-4J6C9-T83GX
set ProfessionalN=MH37W-N47XK-V7XM9-C7227-GCQG9
set Enterprise=NPPR9-FWDCX-D2C8J-H872K-2YT43
set EnterpriseN=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
set Education=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
set EducationN=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
set EnterpriseS=WNMTR-4C88C-JK8YV-HQ7T2-76DF9
set EnterpriseSN=2F77B-TNFGY-69QQF-B8YKP-D69TJ
set ServerDatacenter=CB7KF-BWN84-R7R2Y-793K2-8XDDG
set ServerStandard=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
set ServerEssentials=JCKRF-N37P4-C2D82-9YXRT-4M63B
set EnterpriseG=YYVX9-NTFWV-6MDM3-9PT4T-4M68B
set EnterpriseGN=44RPN-FTY23-9VTTB-MP9BX-T84FV
set ProfessionalEducation=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
set ProfessionalEducationN=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC
set ProfessionalWorkstation=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
set ProfessionalWorkstations=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
set ProfessionalWorkstationsN=9FNHH-K3HBT-3W4TD-6383H-6XYWF
call :ActWindows
goto :EOF

:ActWindows
for /f "tokens=3 delims= " %%i in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID"') do set EditionID=%%i
echo !%EditionID%!
if defined %EditionID% (
	cscript //Nologo %windir%\system32\slmgr.vbs /ipk !%EditionID%!
	cscript //Nologo %windir%\system32\slmgr.vbs /skms !KMSServer!
	cscript //Nologo %windir%\system32\slmgr.vbs /ato
) else (
	call :infoExit 激活失败 Windows激活失败,找不到序列号,可能是旗舰版之类的系统。
)
call :info 激活成功 您的Windows已激活成功。
set finished="True"
goto :EOF

:: ----------------------------------- 5、Office激活 -----------------------------------
:office
call :checkNetwork
call :setKMSServer
echo 检查安装的office……
call :getOfficePath 14 Office2010
call :ActOffice 14 Office2010
call :getOfficePath 15 Office2013
call :ActOffice 15 Office2013
call :getOfficePath 16 Office2016
call :ActOffice 16 Office2016
goto :EOF

:ActOffice
if DEFINED _Office%1Path (
    cd /d "!_Office%1Path!"
	if %1 EQU 14 call :license2010
	if %1 EQU 15 call :license2013
    if %1 EQU 16 call :license2016
    echo 尝试激活 %2 ……
    cscript //nologo ospp.vbs /sethst:!KMSServer! >nul
    cscript //nologo ospp.vbs /act | find /i "successful" && (call :info 激活成功 您的%2已经激活成功) || (call :infoExit 激活失败 %2激活失败)
)    

cd /d "%~dp0"
goto :EOF

:getOfficePath
echo 正在检测 %2 系列产品的安装路径……
set _Office%1Path=
set _Reg32=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\%1.0\Common\InstallRoot
set _Reg64=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\%1.0\Common\InstallRoot
reg query "%_Reg32%" /v "Path" > nul 2>&1 && FOR /F "tokens=2*" %%a IN ('reg query "%_Reg32%" /v "Path"') do SET "_OfficePath1=%%b"
reg query "%_Reg64%" /v "Path" > nul 2>&1 && FOR /F "tokens=2*" %%a IN ('reg query "%_Reg64%" /v "Path"') do SET "_OfficePath2=%%b"
if DEFINED _OfficePath1 (if exist "%_OfficePath1%ospp.vbs" set _Office%1Path=!_OfficePath1!)
if DEFINED _OfficePath2 (if exist "%_OfficePath2%ospp.vbs" set _Office%1Path=!_OfficePath2!)
set _OfficePath1=
set _OfficePath2=
if DEFINED _Office%1Path (echo 已发现 %2) else (echo 未发现 %2)
goto :EOF

:license2010
cscript ospp.vbs /inpkey:VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB >nul
cscript ospp.vbs /inpkey:V7QKV-4XVVR-XYV4D-F7DFM-8R6BM >nul
cscript ospp.vbs /inpkey:D6QFG-VBYP2-XQHM7-J97RH-VVRCK >nul
cscript ospp.vbs /inpkey:V7Y44-9T38C-R2VJK-666HK-T7DDX >nul
cscript ospp.vbs /inpkey:H62QG-HXVKF-PP4HP-66KMR-CW9BM >nul
cscript ospp.vbs /inpkey:QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4 >nul
cscript ospp.vbs /inpkey:K96W8-67RPQ-62T9Y-J8FQJ-BT37T >nul
cscript ospp.vbs /inpkey:Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX >nul
cscript ospp.vbs /inpkey:7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ >nul
cscript ospp.vbs /inpkey:RC8FX-88JRY-3PF7C-X8P67-P4VTT >nul
cscript ospp.vbs /inpkey:YGX6F-PGV49-PGW3J-9BTGG-VHKC6 >nul
cscript ospp.vbs /inpkey:BFK7F-9MYHM-V68C7-DRQ66-83YTP >nul
cscript ospp.vbs /inpkey:HVHB3-C6FV7-KQX9W-YQG79-CRY7T >nul
cscript ospp.vbs /inpkey:D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ >nul
cscript ospp.vbs /inpkey:7MCW8-VRQVK-G677T-PDJCM-Q8TCP >nul
cscript ospp.vbs /inpkey:767HD-QGMWX-8QTDB-9G3R2-KHFGJ >nul
goto :EOF

:license2013
cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT >nul
cscript ospp.vbs /inpkey:KBKQT-2NMXY-JJWGP-M62JB-92CD4 >nul
cscript ospp.vbs /inpkey:FN8TT-7WMH6-2D4X9-M337T-2342K >nul
cscript ospp.vbs /inpkey:6NTH3-CW976-3G3Y2-JK3TX-8QHTT >nul
cscript ospp.vbs /inpkey:C2FG9-N6J68-H8BTJ-BW3QX-RM3B3 >nul
cscript ospp.vbs /inpkey:J484Y-4NKBF-W2HMG-DBMJC-PGWR7 >nul
cscript ospp.vbs /inpkey:NG2JY-H4JBT-HQXYP-78QH9-4JM2D >nul
cscript ospp.vbs /inpkey:VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB >nul
cscript ospp.vbs /inpkey:DKT8B-N7VXH-D963P-Q4PHY-F8894 >nul
cscript ospp.vbs /inpkey:2MG3G-3BNTT-3MFW9-KDQW3-TCK7R >nul
cscript ospp.vbs /inpkey:TGN6P-8MMBC-37P2F-XHXXK-P34VW >nul
cscript ospp.vbs /inpkey:QPN8Q-BJBTJ-334K3-93TGY-2PMBT >nul
cscript ospp.vbs /inpkey:4NT99-8RJFH-Q2VDH-KYG2C-4RD4F >nul
cscript ospp.vbs /inpkey:PN2WF-29XG2-T9HJ7-JQPJR-FCXK4 >nul
cscript ospp.vbs /inpkey:6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7 >nul
goto :EOF


:license2016
for /f %%x in ('dir /b ..\root\Licenses16\project???vl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\proplusvl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\standardvl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\visio???vl_kms*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\project???vl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\proplusvl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\standardvl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
for /f %%x in ('dir /b ..\root\Licenses16\visio???vl_mak*.xrm-ms') do cscript ospp.vbs /inslic:"..\root\Licenses16\%%x" >nul
cscript ospp.vbs /inpkey:NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP >nul
cscript ospp.vbs /inpkey:NYH39-6GMXT-T39D4-WVXY2-D69YY >nul
cscript ospp.vbs /inpkey:7WHWN-4T7MP-G96JF-G33KR-W8GF4 >nul
cscript ospp.vbs /inpkey:RBWW7-NTJD4-FFK2C-TDJ7V-4C2QP >nul
cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99 >nul
cscript ospp.vbs /inpkey:YG9NW-3K39V-2T3HJ-93F3Q-G83KT >nul
cscript ospp.vbs /inpkey:PD3PC-RHNGV-FXJ29-8JK7D-RJRJK >nul
goto :EOF

:: ----------------------------------- 6、清除Office激活 -----------------------------------

:startCleanOfficeKMS
set /p xuanze= 是否真的要清除Office的KMS激活?(【Y】继续/【N】关闭):
if /i "%xuanze%"=="y" goto nextun
if /i "%xuanze%"=="n" goto end


:nextun
call :getOfficePath 14 Office2010
call :cleanOffice 14 Office2010
call :getOfficePath 15 Office2013
call :cleanOffice 15 Office2013
call :getOfficePath 16 Office2016
call :cleanOffice 16 Office2016
call :infoExit 清除完成 您的OfficeKMS信息已从电脑上成功移除。
  
:cleanOffice
if DEFINED _Office%1Path (
    echo 清理%2的Key……
    cd /d "!_Office%1Path!"
	for /f "tokens=8 delims= " %%a in ('cscript //nologo ospp.vbs /dstatus ^| find "product key"') do ( 
	    cscript //nologo ospp.vbs /unpkey:%%a >nul
	)
	echo 移除KMS……
	cscript //nologo ospp.vbs /remhst >nul
)
goto :EOF

:: ----------------------------------- 7、清除Windows KMS -----------------------------------

:startCleanWindowsKMS
set /p xuanze= 是否真的要清除Windows的KMS激活?(【Y】继续/【N】关闭):
if /i "%xuanze%"=="y" goto nextunw
if /i "%xuanze%"=="n" goto end
:nextunw
slmgr /upk
::slmgr /ckms
::slmgr /rearm
call :infoExit 清除完成 您的WindowsKMS信息已从电脑上成功移除。

最后最爽的一步

附录

Windows GVLK大全

微软官方发布,已复制到我的WiKi《Windows GVLK大全》上去了。

Office GVLK大全

Office2010官方发布Office2013官方发布Office2016/2019官方发布,已复制到我的WiKi《Office GVLK大全》上去了。  


转载请注明出处http://www.bewindoweb.com/240.html | 三颗豆子
分享许可方式知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
重大发现:转载注明原文网址的同学刚买了彩票就中奖,刚写完代码就跑通,刚转身就遇到了真爱。
你可能还会喜欢
具体问题具体杠