自建Windows/Office激活KMS服务器-八零岁月
记录所见
分享所感

自建Windows/Office激活KMS服务器

快速构建和激活

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

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、卸载已有激活keyslmgr.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-T83GXslmgr.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脚本下载:KMS激活脚本

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:87b7b887cc6eb038618be99dd7bebba6c7a4be474c407579b261902d431b350e8

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_kmsdd5559a9777394b4ffaf0b0b22f0c077c0f5ed69f64940e35dc2708e6ef70783
# 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、开放服务器端口

用KMS激活Windows

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

用管理员模式打开CMD:

# 1、卸载已有激活keyslmgr.vbs -upk 
# 2、安装新的GVLKslmgr.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\Office15cd E:\Office2013\Office15cscript 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\Office15cscript ospp.vbs /inpkey:XXXXXXXXXXXX

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

cd E:\Office2013\Office15cscript 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,其他分支没有去测试,需要靠大家来在使用过程中遇到问题来评论……

@echo off&setlocal EnableDelayedExpansion&color 3e
title Windows KMS激活脚本  --PowerBy Linker


:: 如果激活失败,可能是因为连不到KMS服务器了,
:: 你仅需修改下面的KMS服务器地址
set KMS_Sev=xxx.xxx.xxx.xxx
set KMS_Port=1688
set do_check=false

call :getver
call :adminchk
::定义win10
set 10.0_1_Core_=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
set 10.0_1_CoreCountrySpecific=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR
set 10.0_1_CoreN=3KHY7-WNT83-DGQKR-F7HPR-844BM
set 10.0_1_CoreSingleLanguage=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH
set 10.0_1_Professional=W269N-WFGWX-YVC9B-4J6C9-T83GX
set 10.0_1_ProfessionalN=MH37W-N47XK-V7XM9-C7227-GCQG9
set 10.0_1_Enterprise=NPPR9-FWDCX-D2C8J-H872K-2YT43
set 10.0_1_EnterpriseN=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
set 10.0_1_Education=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
set 10.0_1_EducationN=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
set 10.0_1_EnterpriseS=WNMTR-4C88C-JK8YV-HQ7T2-76DF9
set 10.0_1_EnterpriseSN=2F77B-TNFGY-69QQF-B8YKP-D69TJ
set 10.0_1_EnterpriseLTSC=M7XTQ-FN8P6-TTKYV-9D4CC-J462D
set 10.0_1_EnterpriseLTSCN=92NFX-8DJQP-P6BBQ-THF9C-7CG2H
set 10.0_1_EnterpriseLTSB=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
set 10.0_1_EnterpriseLTSBN=QFFDN-GRT3P-VKWWX-X7T3R-8B639
set 10.0_1_ProfessionalEducation=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
set 10.0_1_ProfessionalEducationN=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC
set 10.0_1_ProfessionalWorkstation=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
set 10.0_1_ProfessionalWorkstationN=9FNHH-K3HBT-3W4TD-6383H-6XYWF
set 10.0_1_EnterpriseG=YYVX9-NTFWV-6MDM3-9PT4T-4M68B
set 10.0_1_EnterpriseGN=44RPN-FTY23-9VTTB-MP9BX-T84FV
set 10.0_1_Home=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
set 10.0_1_HomeN=3KHY7-WNT83-DGQKR-F7HPR-844BM
set 10.0_1_HomeSingleLanguage=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH
set 10.0_1_HomeCountrySpecific=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR
set 10.0_1_HomeCore=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
set 10.0_1_HomeCoreCountrySpecific=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR

::定义2019
set 10.0_3_2019_ServerDatacenter=WMDGN-G9PQG-XVVXX-R3X43-63DFG
set 10.0_3_2019_ServerStandard=N69G4-B89J2-4G8F4-WWYCC-J464C
set 10.0_3_2019_ServerEssentials=WVDHN-86M7X-466P6-VHXV7-YY726
set 10.0_3_2019_ServerAzureCore=FDNH6-VW9RW-BXPJ7-4XTYG-239TB
set 10.0_3_2019_ServerARM64=GRFBW-QNDC4-6QBHG-CCK3B-2PR88

::定义2016
set 10.0_3_2016_ServerDatacenter=CB7KF-BWN84-R7R2Y-793K2-8XDDG
set 10.0_3_2016_ServerStandard=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
set 10.0_3_2016_ServerEssentials=JCKRF-N37P4-C2D82-9YXRT-4M63B
set 10.0_3_2016_ServerCloudStorage=QN4C6-GBJD2-FB422-GHWJK-GJG2R
set 10.0_3_2016_ServerAzureCore=VP34G-4NPPG-79JTQ-864T4-R3MQX
set 10.0_3_2016_ServerRDSH=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX


::定义Windows Server 2012 R2 and Windows 8.1
set 6.3_3_ServerStandard=D2N9P-3P6X9-2R39C-7RTCD-MDVJX
set 6.3_3_ServerDatacenter=W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
set 6.3_3_ServerEssentials=KNC87-3J2TX-XB4WP-VCPJV-M4FWM
set 6.3_3_ServerCloudStorage=3NPTF-33KPT-GGBPR-YX76B-39KDD

set 6.3_1_Professional=GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
set 6.3_1_ProfessionalN=HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
set 6.3_1_Enterprise=MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
set 6.3_1_EnterpriseN=TT4HM-HN7YT-62K67-RGRQJ-JFFXW
set 6.3_1_ProfessionalWMC=789NJ-TQK6T-6XTH8-J39CJ-J8D3P
set 6.3_1_Core=M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK
set 6.3_1_CoreN=7B9N3-D94CG-YTVHR-QBPX3-RJP64
set 6.3_1_CoreARM=XYTND-K6QKT-K2MRH-66RTM-43JKP
set 6.3_1_CoreSingleLanguage=BB6NG-PQ82V-VRDPW-8XVD2-V8P66
set 6.3_1_CoreCountrySpecific=NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3
set 6.3_1_EmbeddedIndustry=NMMPB-38DD4-R2823-62W8D-VXKJB
set 6.3_1_EmbeddedIndustryEnterprise=FNFKF-PWTVT-9RC8H-32HB2-JB34X
set 6.3_1_EmbeddedIndustryAutomotive=VHXM3-NR6FT-RY6RT-CK882-KW2CJ
set 6.3_1_CoreConnected=3PY8R-QHNP9-W7XQD-G6DPH-3J2C9
set 6.3_1_CoreConnectedN =Q6HTR-N24GM-PMJFP-69CD8-2GXKR
set 6.3_1_CoreConnectedSingleLanguage=KF37N-VDV38-GRRTV-XH8X6-6F3BB
set 6.3_1_CoreConnectedCountrySpecific=R962J-37N87-9VVK2-WJ74P-XTMHR
set 6.3_1_ProfessionalStudent=MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B
set 6.3_1_ProfessionalStudentN=TNFGH-2R6PB-8XM3K-QYHX2-J4296



::定义Windows Server 2012 and Windows 8
set 6.2_1_Professional=NG4HW-VH26C-733KW-K6F98-J8CK4
set 6.2_1_ProfessionalN=XCVCF-2NXM9-723PB-MHCB7-2RYQQ
set 6.2_1_Enterprise=32JNW-9KQ84-P47T8-D8GGY-CWCK7
set 6.2_1_EnterpriseN=JMNMF-RHW7P-DMY6X-RF3DR-X2BQT

set 6.2_3_Server=BN3D2-R7TKB-3YPBD-8DRP2-27GG4
set 6.2_3_ServerN=8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
set 6.2_3_ServerSingleLanguage=2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
set 6.2_3_ServerCountry Specific=4K36P-JN4VD-GDC6V-KDT89-DYFKP
set 6.2_3_ServerStandard=XC9B7-NBPP2-83J2H-RHMBY-92BT4
set 6.2_3_ServerMultiPointStandard=HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
set 6.2_3_ServerMultiPointPremium=XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
set 6.2_3_ServerDatacenter=48HP8-DN98B-MYWDG-T2DCC-8W83P



::定义Windows Server 2008R2
set 6.1_3_ServerWeb=6TPJF-RBVHG-WBW2R-86QPH-6RTM4
set 6.1_3_ServerHPC=TT8MH-CG224-D3D7Q-498W2-9QCTX
set 6.1_3_ServerStandard=YC6KT-GKW9T-YTKYR-T4X34-R7VHC
set 6.1_3_ServerEnterprise=489J6-VHDMP-X63PK-3K798-CPX3Y
set 6.1_3_ServerDatacenter=74YFP-3QFB3-KQT8W-PMXWJ-7M648
set 6.1_3_ServerEnterpriseIA64=GT63C-RJFQ3-4GMB6-BRFB9-CB83V

::定义Windows 7
set 6.1_1_Professional=FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
set 6.1_1_ProfessionalN=MRPKT-YTG23-K7D7T-X2JMM-QY7MG
set 6.1_1_ProfessionalE=W82YF-2Q76Y-63HXB-FGJG9-GF7QX
set 6.1_1_Enterprise=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
set 6.1_1_EnterpriseN=YDRBP-3D83W-TY26F-D46B2-XCKRJ
set 6.1_1_EnterpriseE=C29WB-22CC8-VJ326-GHFJW-H9DH4

::Windows Vista and Windows Server 2008
set 6.0_1_Business=YFKBB-PQJJV-G996G-VWGXY-2V3X8
set 6.0_1_BusinessN=HMBQG-8H2RH-C77VX-27R82-VMQBT
set 6.0_1_Enterprise=VKK3X-68KWM-X2YGT-QR4M6-4BWMV
set 6.0_1_EnterpriseN=VTC42-BM838-43QHV-84HX6-XJXKV

set 6.0_3_ServerWeb=WYR28-R7TFJ-3X2YQ-YCY4H-M249D
set 6.0_3_ServerStandard=TM24T-X9RMF-VWXK6-X8JC9-BFGM2
set 6.0_3_ServerEnterprise=YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
set 6.0_3_ServerHPC=RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
set 6.0_3_ServerDatacenter=7M67G-PC374-GR742-YH8V4-TCBY3
set 6.0_3_ServerIA64=4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

for /f "tokens=3 delims=: " %%G in ('dism /Online /Get-CurrentEdition /English ^| findstr /i "Current Edition :"') do (
            set "EditionID=%%G"
        )

for /f "tokens=2 delims== " %%I in ('wmic os get ProductType /value') do (
            set "ProductType=%%I"
        )


if "%winver%"=="10.0" if "%ProductType%"=="3" set do_check=true
if "%do_check%"=="true" (
    for /f "tokens=4 delims= " %%J in ('wmic os get Caption /value') do ( set "Caption=%%J" )
)


if defined Caption (
    set strEditionId=%winver%_%ProductType%_%Caption%_%EditionID%
) else (
    set strEditionId=%winver%_%ProductType%_%EditionID%
)

if defined %strEditionId% (
    cscript //Nologo %windir%\system32\slmgr.vbs /ipk !%strEditionId%!
    cscript //Nologo %windir%\system32\slmgr.vbs /skms %KMS_Sev%
    cscript //Nologo %windir%\system32\slmgr.vbs /ato
) else (
    echo.&echo Not found DEFINED Key: "%EditionID%".
    echo.
)
pause
exit



:getver
ver | find "10.0." >nul && set "winver=10.0"
ver | find "6.3." >nul && set "winver=6.3"
ver | find "6.2." >nul && set "winver=6.2"
ver | find "6.1." >nul && set "winver=6.1"
ver | find "6.0." >nul && set "winver=6.0"



:adminchk
reg query "HKU\S-1-5-19" >nul 2>nul || (
cls&echo.&echo Run as ADMINISTRATOR, Pls.
echo.&echo Press any key to exit.
echo.&pause>nul
exit)
goto :EOF

文章转载请说明出处:八零岁月 » 自建Windows/Office激活KMS服务器

分享到:更多 ()

吐槽集中营 抢沙发

评论前必须登录!