KMS即Key Management Service,用來企業內部批量激活的。還有一種激活方式叫MAK,就是普通的經過internet或者電話激活,具體的區別百度裏面不少介紹算法
下面是原理圖,windows
結合原理圖下面是具體搭建過程及相應工做機制緩存
KMS主機安裝Windows KMS Host key。ide
slmgr.vbs –ipk AAAAA-BBBBB-CCCCC-DDDDD-EEEEE /*導入kms-key*/加密
slmgr.vbs -ato /*激活上面輸入的key*/spa
經過Internet或者電話激活KMS主機orm
KMS服務每次啓動時都會在DNS中添加SRV record服務資源記錄server
KMS客戶端每次向DNS查詢KMS服務信息時,將從DNS提供的服務資源記錄列表隨機選擇一個KMS主機。若是選擇的KMS主機沒有響應,KMS客戶端計算機將從它的SRV記錄列表中刪除該KMS主機記錄,同時隨機從列表中選擇一個新的KMS主機。 ( windows client可能不會執行此步驟,不是全部的client都是kms client,默認狀況下安裝系統的時候不輸入序列號的話默認的是VOL KEY‘你要問我什麼是VOL KEY,他是免費的、公開的,輸入的key是vol key他就是kms client,就會執行上面的第4步’。經過以下腳本能夠解決這個問題 cd %systemroot%\system32\ip
cscript.exe slmgr.vbs -ipk xxxx-xxxx-xxxx-xxxx-xxxx /*xxxx表示vol key*/ci
cscript.exe slmgr.vbs -skms kms-server-ip /*這一步其實能夠不用執行的,也能夠加上去,指定kms server,其中kms-server-ip 爲kms server 的ip*/
cscript.exe slmgr.vbs –ato /*執行激活過程*/ 下面是一些vol key Windows 7 Professional - FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional N - MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Enterprise - 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise N - YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise E - C29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 HPC Edition - FKJQ8-TMCVP-FRMR7-4WR42-3JCD7
Windows Server 2008 R2 Datacenter - 74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 Enterprise - 489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 for Itanium-Based Systems - GT63C-RJFQ3-4GMB6-BRFB9-CB83V
Windows Server 2008 R2 Standard - YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Web Server 2008 R2 - 6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Vista Business - YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N - HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista Enterprise - VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista Enterprise N - VTC42-BM838-43QHV-84HX6-XJXKV
Windows Server 2008 Datacenter - 7M67G-PC374-GR742-YH8V4-TCBY3
Windows Server 2008 Datacenter without Hyper-V - 22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008 for Itanium-Based Systems - 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
Windows Server 2008 Enterprise - YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise without Hyper-V - 39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 Standard - TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Windows Server 2008 Standard without Hyper-V - W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Web Server 2008 - WYR28-R7TFJ-3X2YQ-YCY4H-M249D )
客戶端計算機經過TCP匿名遠程過程調用鏈接到KMS主機,默認端口爲1688。在客戶端計算機和KMS主機創建TCP會話以後,客戶端計算機會產生CMID客戶端標識 而後向KMS主機發送請求記錄。這條請求記錄會用AES加密算法作簽名。已經激活的客戶端會每7天發發送一次請求刷新激活記錄,未激活的 Windows 8 客戶端每2小時發送一次請求進行激活。若是緩存KMS主機沒法響應後續的激活狀態更新,KMS客戶端計算機將會經過DNS中KMS SRV記錄從新查找新的KMS主機。
KMS主機會將客戶端標識(CMID)保存在KMS主機上的一張表(CMID/DATA-stamp)中。每一個激活請求在該表中的存留時間爲30天。當某個 Windows 客戶端刷新它的激活,那麼該客戶端的緩存CMID將從表中刪除,同時建立一個新的記錄,存留週期從新變爲30天。若是某個KMS客戶端沒有在30天以內刷新它的激活,那麼相對應的CMID將會從表中刪除同時激活計數減1。
KMS主機將激活計數返回給客戶端, 客戶端將激活計數的值與受權策略對比,若是知足激活閾值,則進行激活。默認狀況下Windows 8 客戶端每週自動進行一次激活。