Skip to content

Instantly share code, notes, and snippets.

@shizhao
Last active March 19, 2022 04:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save shizhao/73044e7843c39e5e2e8c444ac48acab0 to your computer and use it in GitHub Desktop.
Save shizhao/73044e7843c39e5e2e8c444ac48acab0 to your computer and use it in GitHub Desktop.
Activation Windows for KMS (change line16, set KMS server )
@echo off
cls
::Detecting OS version
echo ****************************************
echo Detecting OS version......
echo ****************************************
echo.
wmic os get caption,CSDVersion,buildnumber
ver
echo.
echo ****************************************
echo.
Pause
::set KMS server
set kmshost=x.com
echo.
:: KMS Client Setup Keys https://docs.microsoft.com/en-us/windows-server/get-started/kmsclientkeys
::Windows Server, version 1709
set wsd=6Y6KB-N82V8-D8CQV-23MJW-BWTG6
set wss=DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4
::Windows Server 2016
set ws2016d=CB7KF-BWN84-R7R2Y-793K2-8XDDG
set ws2016s=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
set ws2016e=JCKRF-N37P4-C2D82-9YXRT-4M63B
::Windows 10, version 1709
set w10pw=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
set w10pwn=9FNHH-K3HBT-3W4TD-6383H-6XYWF
::Windows 10
set w10p=W269N-WFGWX-YVC9B-4J6C9-T83GX
set w10pn=MH37W-N47XK-V7XM9-C7227-GCQG9
set w10e=NPPR9-FWDCX-D2C8J-H872K-2YT43
set w10en=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
set w10edu=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
set w10edun=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
set w10e2015ltsb=WNMTR-4C88C-JK8YV-HQ7T2-76DF9
set w10e2015ltsbn=2F77B-TNFGY-69QQF-B8YKP-D69TJ
set w10e2016ltsb=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
set w10e2016ltsbn=QFFDN-GRT3P-VKWWX-X7T3R-8B639
::Windows Server 2012
set ws2012r2ss=D2N9P-3P6X9-2R39C-7RTCD-MDVJX
set ws2012r2d=W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
set ws2012r2e=KNC87-3J2TX-XB4WP-VCPJV-M4FWM
set windowss2012=BN3D2-R7TKB-3YPBD-8DRP2-27GG4
set ws2012n=8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
set ws2012sl=2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
set ws2012cs=4K36P-JN4VD-GDC6V-KDT89-DYFKP
set ws2012ss=XC9B7-NBPP2-83J2H-RHMBY-92BT4
set ws2012ms=HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
set ws2012mp=XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
set ws2012d=48HP8-DN98B-MYWDG-T2DCC-8W83P
::Windows 8
set w81p=GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
set w81pn=HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
set w81e=MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
set w81en=TT4HM-HN7YT-62K67-RGRQJ-JFFXW
set w8p=NG4HW-VH26C-733KW-K6F98-J8CK4
set w8pn=XCVCF-2NXM9-723PB-MHCB7-2RYQQ
set w8e=32JNW-9KQ84-P47T8-D8GGY-CWCK7
set w8en=JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
::Windows 7
set w7p=FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
set w7pn=MRPKT-YTG23-K7D7T-X2JMM-QY7MG
set w7pe=W82YF-2Q76Y-63HXB-FGJG9-GF7QX
set w7e=33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
set w7en=YDRBP-3D83W-TY26F-D46B2-XCKRJ
set w7ee=C29WB-22CC8-VJ326-GHFJW-H9DH4
::Windows Server 2008
set ws2008r2w=6TPJF-RBVHG-WBW2R-86QPH-6RTM4
set ws2008r2hpc=TT8MH-CG224-D3D7Q-498W2-9QCTX
set ws2008r2s=YC6KT-GKW9T-YTKYR-T4X34-R7VHC
set ws2008r2e=489J6-VHDMP-X63PK-3K798-CPX3Y
set ws2008r2d=74YFP-3QFB3-KQT8W-PMXWJ-7M648
set ws2008r2is=GT63C-RJFQ3-4GMB6-BRFB9-CB83V
set ws2008w=WYR28-R7TFJ-3X2YQ-YCY4H-M249D
set ws2008s=TM24T-X9RMF-VWXK6-X8JC9-BFGM2
set ws2008shv=W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
set ws2008e=YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
set ws2008ehv=39BXF-X8Q23-P2WWT-38T2F-G3FPG
set ws2008hpc=RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
set ws2008d=7M67G-PC374-GR742-YH8V4-TCBY3
set ws2008dhv=22XQ2-VRXRG-P8D42-K34TD-G3QQC
set ws2008is=4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
::Windows Vista
set wvb=YFKBB-PQJJV-G996G-VWGXY-2V3X8
set wvbn=HMBQG-8H2RH-C77VX-27R82-VMQBT
set wve=VKK3X-68KWM-X2YGT-QR4M6-4BWMV
set wven=VTC42-BM838-43QHV-84HX6-XJXKV
::windows menu
echo.
echo.
echo ===========================================
echo.
echo Activate Windows for KMS
echo.
echo ===========================================
echo.
echo Select a Windows version:
echo.
echo --------------------------
echo.
echo [1]. Windows Server, version 1709
echo [2]. Windows Server 2016
echo [3]. Windows 10
echo [4]. Windows Server 2012
echo [5]. Windows 8.x
echo [6]. Windows 7
echo [7]. Windows Server 2008
echo [8]. Windows Vista
echo.
echo ==========================================
echo.
choice /C 12345678 /M "Plese input a number: "
if errorlevel 8 goto wv
if errorlevel 7 goto ws2008
if errorlevel 6 goto w7
if errorlevel 5 goto w8
if errorlevel 4 goto ws2012
if errorlevel 3 goto w10
if errorlevel 2 goto ws2016
if errorlevel 1 goto ws
:ws
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server (version 1709) edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server Datacenter
echo [2]. Windows Server Standard
echo.
echo ------------------------------------------
echo.
choice /C 12 /M "Plese input a number: "
if errorlevel 2 (set lkey=%wss% && goto kms)
if errorlevel 1 (set lkey=%wsd% && goto kms)
:ws2016
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2016 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2016 Datacenter
echo [2]. Windows Server 2016 Standard
echo [3]. Windows Server 2016 Essentials
echo.
echo ------------------------------------------
echo.
choice /C 123 /M "Plese input a number: "
if errorlevel 3 (set lkey=%ws2016e% && goto kms)
if errorlevel 2 (set lkey=%ws2016s% && goto kms)
if errorlevel 1 (set lkey=%ws2016d% && goto kms)
:w10
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 10 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 10, version 1709
echo [2]. Windows 10
echo [3]. Windows 10 Enterprise LTSB
echo.
echo ------------------------------------------
echo.
choice /C 123 /M "Plese input a number: "
if errorlevel 3 goto w10ltsb
if errorlevel 2 goto win10
if errorlevel 1 goto w101709
:w101709
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 10 (version 1709) edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 10 Professional Workstation
echo [2]. Windows 10 Professional Workstation N
echo.
echo ------------------------------------------
echo.
choice /C 12 /M "Plese input a number: "
if errorlevel 2 (set lkey=%w10pwn% && goto kms)
if errorlevel 1 (set lkey=%w10pw% && goto kms)
:win10
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 10 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 10 Professional
echo [2]. Windows 10 Professional N
echo [3]. Windows 10 Enterprise
echo [4]. Windows 10 Enterprise N
echo [5]. Windows 10 Education
echo [6]. Windows 10 Education N
echo.
echo ------------------------------------------
echo.
choice /C 123456 /M "Plese input a number: "
if errorlevel 6 (set lkey=%w10edun% && goto kms)
if errorlevel 5 (set lkey=%w10edu% && goto kms)
if errorlevel 4 (set lkey=%w10en% && goto kms)
if errorlevel 3 (set lkey=%w10e% && goto kms)
if errorlevel 2 (set lkey=%w10pn% && goto kms)
if errorlevel 1 (set lkey=%w10p% && goto kms)
:w10ltsb
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 10 LTSB edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 10 Enterprise 2015 LTSB
echo [2]. Windows 10 Enterprise 2015 LTSB N
echo [3]. Windows 10 Enterprise 2016 LTSB
echo [4]. Windows 10 Enterprise 2016 LTSB N
echo.
echo ------------------------------------------
echo.
choice /C 1234 /M "Plese input a number: "
if errorlevel 4 (set lkey=%w10e2016ltsbn% && goto kms)
if errorlevel 3 (set lkey=%w10e2016ltsb% && goto kms)
if errorlevel 2 (set lkey=%w10e2015ltsbn% && goto kms)
if errorlevel 1 (set lkey=%w10e2015ltsb% && goto kms)
:ws2012
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2012 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2012 R2
echo [2]. Windows Server 2012
echo.
echo ------------------------------------------
echo.
choice /C 12 /M "Plese input a number: "
if errorlevel 2 goto wins2012
if errorlevel 1 goto ws2012r2
:ws2012r2
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2012 R2 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2012 R2 Server Standard
echo [2]. Windows Server 2012 R2 Datacenter
echo [3]. Windows Server 2012 R2 Essentials
echo.
echo ------------------------------------------
echo.
choice /C 123 /M "Plese input a number: "
if errorlevel 3 (set lkey=%ws2012r2ss% && goto kms)
if errorlevel 2 (set lkey=%ws2012r2d% && goto kms)
if errorlevel 1 (set lkey=%ws2012r2e% && goto kms)
:wins2012
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2012 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2012
echo [2]. Windows Server 2012 N
echo [3]. Windows Server 2012 Single Language
echo [4]. Windows Server 2012 Country Specific
echo [5]. Windows Server 2012 Server Standard
echo [6]. Windows Server 2012 MultiPoint Standard
echo [7]. Windows Server 2012 MultiPoint Premium
echo [8]. Windows Server 2012 Datacenter
echo.
echo ------------------------------------------
choice /C 12345678 /M "Plese input a number: "
echo.
if errorlevel 8 (set lkey=%ws2012d% && goto kms)
if errorlevel 7 (set lkey=%ws2012mp% && goto kms)
if errorlevel 6 (set lkey=%ws2012ms% && goto kms)
if errorlevel 5 (set lkey=%ws2012ss% && goto kms)
if errorlevel 4 (set lkey=%ws2012cs% && goto kms)
if errorlevel 3 (set lkey=%ws2012sl% && goto kms)
if errorlevel 2 (set lkey=%ws2012n% && goto kms)
if errorlevel 1 (set lkey=%windowss2012% && goto kms)
:w8
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 8 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 8.1 Professional
echo [2]. Windows 8.1 Professional N
echo [3]. Windows 8.1 Enterprise
echo [4]. Windows 8.1 Enterprise N
echo [5]. Windows 8 Professional
echo [6]. Windows 8 Professional N
echo [7]. Windows 8 Enterprise
echo [8]. Windows 8 Enterprise N
echo.
echo ------------------------------------------
echo.
choice /C 12345678 /M "Plese input a number: "
if errorlevel 8 (set lkey=%w8en% && goto kms)
if errorlevel 7 (set lkey=%w8e% && goto kms)
if errorlevel 6 (set lkey=%w8pn% && goto kms)
if errorlevel 5 (set lkey=%w8p% && goto kms)
if errorlevel 4 (set lkey=%w81en% && goto kms)
if errorlevel 3 (set lkey=%w81e% && goto kms)
if errorlevel 2 (set lkey=%w81pn% && goto kms)
if errorlevel 1 (set lkey=%w81p% && goto kms)
:w7
echo.
echo.
echo ==========================================
echo.
echo Select a Windows 7 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows 7 Professional
echo [2]. Windows 7 Professional N
echo [3]. Windows 7 Professional E
echo [4]. Windows 7 Enterprise
echo [5]. Windows 7 Enterprise N
echo [6]. Windows 7 Enterprise E
echo.
echo ------------------------------------------
echo.
choice /C 123456 /M "Plese input a number: "
echo.
if errorlevel 6 (set lkey=%w7ee% && goto kms)
if errorlevel 5 (set lkey=%7en% && goto kms)
if errorlevel 4 (set lkey=%w7e% && goto kms)
if errorlevel 3 (set lkey=%w7pe% && goto kms)
if errorlevel 2 (set lkey=%w7pn% && goto kms)
if errorlevel 1 (set lkey=%w7p% && goto kms)
:ws2008
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2008 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2008 R2
echo [2]. Windows Server 2008
echo.
echo ------------------------------------------
echo.
choice /C 12 /M "Plese input a number: "
if errorlevel 2 goto wins2008
if errorlevel 1 goto ws2008r2
:ws2008r2
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2008 R2 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Server 2008 R2 Web
echo [2]. Windows Server 2008 R2 HPC edition
echo [3]. Windows Server 2008 R2 Standard
echo [4]. Windows Server 2008 R2 Enterprise
echo [5]. Windows Server 2008 R2 Datacenter
echo [6]. Windows Server 2008 R2 for Itanium-based Systems
echo.
echo ------------------------------------------
echo.
choice /C 123456 /M "Plese input a number: "
if errorlevel 6 (set lkey=%ws2008r2is% && goto kms)
if errorlevel 5 (set lkey=%ws2008r2d% && goto kms)
if errorlevel 4 (set lkey=%ws2008r2e% && goto kms)
if errorlevel 3 (set lkey=%ws2008r2s% && goto kms)
if errorlevel 2 (set lkey=%ws2008r2hpc% && goto kms)
if errorlevel 1 (set lkey=%ws2008r2w% && goto kms)
:wins2008
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Server 2008 edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Web Server 2008
echo [2]. Windows Server 2008 Standard
echo [3]. Windows Server 2008 Standard without Hyper-V
echo [4]. Windows Server 2008 Enterprise
echo [5]. Windows Server 2008 Enterprise without Hyper-V
echo [6]. Windows Server 2008 HPC
echo [7]. Windows Server 2008 Datacenter
echo [8]. Windows Server 2008 Datacenter without Hyper-V
echo [9]. Windows Server 2008 for Itanium-Based Systems
echo.
echo ------------------------------------------
echo.
choice /C 123456789 /M "Plese input a number: "
if errorlevel 9 (set lkey=%ws2008is% && goto kms)
if errorlevel 8 (set lkey=%ws2008dhv% && goto kms)
if errorlevel 7 (set lkey=%ws2008d% && goto kms)
if errorlevel 6 (set lkey=%ws2008hpc% && goto kms)
if errorlevel 5 (set lkey=%ws2008ehv% && goto kms)
if errorlevel 4 (set lkey=%ws2008e% && goto kms)
if errorlevel 3 (set lkey=%ws2008shv% && goto kms)
if errorlevel 2 (set lkey=%ws2008s% && goto kms)
if errorlevel 1 (set lkey=%ws2008w% && goto kms)
:wv
echo.
echo.
echo ==========================================
echo.
echo Select a Windows Vista edition:
echo.
echo ------------------------------------------
echo.
echo [1]. Windows Vista Business
echo [2]. Windows Vista Business N
echo [3]. Windows Vista Enterprise
echo [4]. Windows Vista Enterprise N
echo.
echo ------------------------------------------
echo.
choice /C 123456789 /M "Plese input a number: "
if errorlevel 4 (set lkey=%wven% && goto kms)
if errorlevel 3 (set lkey=%wve% && goto kms)
if errorlevel 2 (set lkey=%wvbn% && goto kms)
if errorlevel 1 (set lkey=%wvb% && goto kms)
::Activation Windows
:kms
echo.
echo.
echo KMS key is %lkey%
echo.
echo Set key...
echo.
slmgr -ipk %lkey%
echo.
echo Set KMS server ...
echo.
slmgr -skms %kmshost%
echo.
echo Activation Windows...
echo.
slmgr -ato
::end
pause
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment