ในบล็อกของเรา เราได้นำข้อมูลเกี่ยวกับการติดตั้ง การกำหนดค่า และการเปิดใช้งานผลิตภัณฑ์ Microsoft (MS Office และ Windows) โดยใช้ Key Management Service (KMS) แล้ว วันนี้เราจะมาดูแนวคิดของตัวนับการเปิดใช้งาน KMS พิจารณาวิธีการนับจำนวนการเปิดใช้งานไคลเอนต์และวิธีเพิ่มจำนวนคำขอเปิดใช้งาน KMS ด้วยตนเอง
สารบัญ:
- ทำความเข้าใจการเปิดใช้งาน KMS
- ข้อผิดพลาดในการเปิดใช้งาน 0xC004F038:จำนวนที่รายงานโดย KMS ของคุณไม่เพียงพอ
- สคริปต์เพื่อเพิ่มจำนวนปัจจุบันของเซิร์ฟเวอร์ KMS
- วิธีเพิ่มจำนวนการเปิดใช้งานโดยใช้สแนปชอต VM
ทำความเข้าใจการเปิดใช้งาน KMS
กลับมาที่พื้นฐานทางทฤษฎีของการเปิดใช้งานวอลุ่ม KMS กันก่อน ภาพรวมขนาดใหญ่ของ Microsoft KMS Licensing มีรายละเอียดอยู่ในบทความคำถามที่พบบ่อยเกี่ยวกับการเปิดใช้งาน KMS
เคล็ดลับ . ขอแนะนำให้อ่านบทความต่อไปนี้บนเว็บไซต์ของเรา:- การติดตั้งเซิร์ฟเวอร์ KMS บน Windows Server 2012 R2 / 2016
- การเปิดใช้งาน KMS สำหรับ MS Office 2016 / 2013
ตามโปรแกรม Microsoft Volume License จำนวนใบอนุญาตขั้นต่ำในแพ็คเกจเดียวคือ 25 ลูกค้า Volume License แต่ละคนจะได้รับ CSVLK พิเศษ คีย์ (หรือคีย์โฮสต์ KMS) ซึ่งใช้เพื่อเปิดใช้งานเซิร์ฟเวอร์ KMS ภายในองค์กร ไคลเอ็นต์ภายใน (ทั้ง Windows และ MS Office) สามารถเปิดใช้งานบนเซิร์ฟเวอร์นี้ได้โดยใช้เซิร์ฟเวอร์ KMS โดยไม่ต้องติดต่อเซิร์ฟเวอร์การเปิดใช้งานของ Microsoft ทางอินเทอร์เน็ต
ข้อผิดพลาดในการเปิดใช้งาน 0xC004F038:จำนวนที่รายงานโดย KMS ของคุณไม่เพียงพอ
อย่างไรก็ตาม หลังจากการติดตั้งและเปิดใช้งาน เซิร์ฟเวอร์ KMS จะไม่เปิดใช้งานไคลเอนต์ที่ติดต่อ หากคุณพยายามเปิดใช้งานระบบปฏิบัติการของคุณ (ในตัวอย่างนี้ Windows 7 Pro) บน KMS ใหม่ คุณจะได้รับข้อผิดพลาด:
การเปิดใช้งาน Windows 7 รุ่น Professional0xc004f038: บริการอนุญาตให้ใช้สิทธิ์ซอฟต์แวร์รายงานว่าไม่สามารถเปิดใช้งานคอมพิวเตอร์ได้ จำนวนที่รายงานโดย Key Management Service (KMS) ของคุณไม่เพียงพอ โปรดติดต่อผู้ดูแลระบบของคุณ
ประเด็นคือเซิร์ฟเวอร์ KMS มีสิ่งที่เรียกว่าจำนวนการเปิดใช้งาน (ตัวนับกิโลเมตร) ค่าใดจะเพิ่มขึ้นหลังจากได้รับคำขอเปิดใช้งานแต่ละครั้งจากไคลเอนต์เครือข่าย เมื่อเข้าถึง เซิร์ฟเวอร์ KMS จะกำหนดตัวระบุเฉพาะ CMID (การระบุเครื่องไคลเอ็นต์) ให้กับลูกค้าแต่ละรายและใส่ลงในฐานข้อมูลท้องถิ่น (แคช) ในกรณีนี้ OS ของคอมพิวเตอร์ที่ได้รับคำขอจะไม่เปิดใช้งานทันที คำขอเปิดใช้งานเหล่านี้จะสะสมอยู่ในแคช KMS ภายในบนเซิร์ฟเวอร์ สิ่งนี้จะเกิดขึ้นจนกว่าจะมีการเอาชนะเกณฑ์ขั้นต่ำของคำขอเปิดใช้งานที่ได้รับภายใน 30 วันที่ผ่านมาในฐานข้อมูล KMS เกณฑ์นี้คือคำขอเปิดใช้งาน 5 รายการจาก OS ของเซิร์ฟเวอร์ และคำขอเปิดใช้งาน 25 รายการจากระบบปฏิบัติการ Windows เดสก์ท็อป (เกณฑ์การเปิดใช้งานสำหรับระบบปฏิบัติการเดสก์ท็อป/เซิร์ฟเวอร์นั้นไม่ขึ้นกับกัน กล่าวคือ หากค่าของการนับ KMS เกินคำขอเปิดใช้งาน 25 รายการจาก OS ไคลเอ็นต์ เซิร์ฟเวอร์นี้ จะไม่เปิดใช้งานระบบปฏิบัติการเซิร์ฟเวอร์จนกว่าจำนวนคำขอเปิดใช้งานจากแพลตฟอร์มเหล่านี้จะถึง 5) หากไคลเอ็นต์ไม่ติดต่อเซิร์ฟเวอร์การเปิดใช้งาน KMS ในช่วง 30 วัน เซิร์ฟเวอร์นั้นจะถูกลบออกจากฐานข้อมูล KMS โดยอัตโนมัติ และตัวนับการเปิดใช้งาน KMS จะลดลงหนึ่งรายการ
คุณสามารถรับค่า CMID บนคอมพิวเตอร์เครื่องใดเครื่องหนึ่งโดยใช้คำสั่งต่อไปนี้:
Get-WmiObject -class SoftwareLicensingService -ComputerName salarypc121 | Select-object ClientMachineID
คุณสามารถรีเซ็ต CMID ปัจจุบันได้โดยการรัน sysprep หรือใช้คำสั่ง:
slmgr /rearm
(ต้องรีบูต)
คุณสามารถดูจำนวนคำขอเปิดใช้งานทั้งหมดที่ได้รับจากเซิร์ฟเวอร์ KMS ได้ตลอดเวลาโดยใช้คำสั่ง:
slmgr /dli
ในตัวอย่างนี้ ค่าตัวนับ KMS (จำนวนปัจจุบัน) บนเซิร์ฟเวอร์ KMS คือ 50
หมายเหตุ . เซิร์ฟเวอร์ KMS จะแคชเฉพาะ CMID 50 รายการสุดท้าย (ในกรณีนี้ จำนวนไคลเอ็นต์ KMS บนเซิร์ฟเวอร์อาจมากกว่า 50 รายการได้มาก)
ในการรับค่าตัวนับที่แน่นอน ให้รันคำสั่งต่อไปนี้บนเซิร์ฟเวอร์ KMS:
cscript slmgr.vbs /dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7
Key Management Service cumulative requests received from clients
Total requests received: 2599
ซึ่งหมายความว่าเซิร์ฟเวอร์ KMS นี้ได้รับคำขอเปิดใช้งาน 2599 จากลูกค้า
ระยะเวลาการเปิดใช้งานไคลเอ็นต์ KMS คือ 180 วัน และทุกๆ 7 วัน (7 วันถูกกำหนดโดยค่าเริ่มต้น สามารถเปลี่ยนได้ด้วยคำสั่ง slmgr.vbs /sri) ไคลเอ็นต์พยายามต่ออายุการเปิดใช้งาน (สำหรับ 180 วันถัดไป) หากลูกค้าไม่ต่ออายุการเปิดใช้งานภายใน 180 วัน เซิร์ฟเวอร์ KMS จะลบ CMID ของไคลเอ็นต์ออกจากฐานข้อมูลและลดตัวนับการเปิดใช้งาน ระบบปฏิบัติการของไคลเอ็นต์ยังคงเปิดใช้งานภายใน 180 วัน ลูกค้าที่ไม่ได้ต่ออายุการเปิดใช้งานบนเซิร์ฟเวอร์ KMS ในช่วง 180 วัน จะเข้าสู่โหมดระยะเวลาผ่อนผัน
ในกรณีที่คุณพยายามเปิดใช้งานระบบปฏิบัติการไคลเอ็นต์บนเซิร์ฟเวอร์ KMS และจำนวนไม่เพิ่มขึ้น อาจเกิดจากสาเหตุต่อไปนี้:
- การทำซ้ำ CMID (โดยปกติเกิดขึ้นเมื่อโคลน OS)
- มีเซิร์ฟเวอร์ KMS มากกว่าหนึ่งเครื่องในเครือข่าย โดยค่าเริ่มต้น ลูกค้าสามารถค้นหาเซิร์ฟเวอร์ KMS ในโดเมนได้โดยอัตโนมัติโดยใช้ระเบียน DNS พิเศษ – srv _vlmcs._tcp (คุณสามารถรับชื่อของเซิร์ฟเวอร์โดยใช้คำสั่ง:
nslookup -type=srv _vlmcs._tcp
). คุณสามารถระบุชื่อเซิร์ฟเวอร์ KMS ด้วยตนเองได้ดังนี้:slmgr /skms kms_server.woshub.com:1688
); - รหัสที่ระบุไม่ถูกต้องบนไคลเอนต์ ตัวอย่างเช่น แทนที่จะระบุ GVLK สาธารณะ (Generic Volume License Key) ให้ระบุ MAK / คีย์การขายปลีก หรือคีย์ที่ไม่สอดคล้องกับระบบปฏิบัติการ
สคริปต์เพื่อเพิ่มจำนวนปัจจุบันของเซิร์ฟเวอร์ KMS
ในบางกรณีแม้ว่าจะซื้อ VLC แล้ว ก็ยังเป็นเรื่องยากที่จะหาจำนวนลูกค้าที่จำเป็นในทันทีเพื่อเอาชนะเกณฑ์การเปิดใช้งานของเซิร์ฟเวอร์ KMS (ปัญหามีความเกี่ยวข้องโดยเฉพาะกับเครือข่ายขนาดเล็กหรือเครือข่ายแยก) เมื่อไคลเอนต์พยายามเปิดใช้งานบนเซิร์ฟเวอร์ในกรณีนี้ เกิดข้อผิดพลาด 0xC004F038 ปรากฏขึ้น
ในกรณีนี้ ผู้ดูแลระบบเริ่มคิดเกี่ยวกับการเพิ่มตัวนับการเปิดใช้งาน KMS ด้วยตนเอง อย่างไรก็ตาม มันไม่ง่ายนัก... ทั้ง sysprep หรือการเปลี่ยนแปลงที่อยู่ MAC สำหรับการ์ดเครือข่ายช่วยให้คุณโกงเซิร์ฟเวอร์ KMS ได้ ขอแนะนำให้สร้างจำนวนเครื่องเสมือนที่ขาดหายไปและเปิดใช้งานบนเซิร์ฟเวอร์ KMS (เครื่องเสมือนจะต้องไม่ซ้ำกัน) เนื่องจากตัวแปรที่ได้รับความนิยมค่อนข้างมาก อย่างไรก็ตาม วิธีนี้ค่อนข้างใช้เวลานานและต้องการให้เครื่องเหล่านี้ทำงานได้ (หรือปรับใช้ใหม่หรือเปิดเครื่องทุกๆ 180 วัน)
เป็นทางเลือกที่ง่ายกว่า เราขอแนะนำให้คุณใช้สคริปต์ cmd ต่อไปนี้ที่อนุญาตให้เพิ่มจำนวนการเปิดใช้งานบนเซิร์ฟเวอร์ KMS . ติดตั้ง OS เวอร์ชันที่จำเป็น (ในตัวอย่างนี้คือ Windows 7 Professional) สร้างไดเร็กทอรีและคัดลอกไฟล์ BAT ต่อไปนี้ลงไป ในโฟลเดอร์เดียวกัน ให้สร้างไฟล์ว่างสองไฟล์ชื่อ:
7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0
7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0
เรียกใช้ added_kms_count.bat:
@echo off
set skms=kms_server.woshub.com
for %%i in (. . . . . . . . . . . . . . . . . . . . . . . . . .) do call :Act %skms%
slmgr /ato
sc stop sppsvc
goto :end
:Act
sc stop sppsvc
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0" "%systemroot%\system32\*" /H /R /K /Y
xcopy "7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0" "%systemroot%\system32\*" /H /R /K /Y
sc start sppsvc
cscript.exe "%systemroot%\system32\slmgr.vbs" /skms %1
ping 127.0.0.1 -n 5 > nul
cscript.exe "%systemroot%\system32\slmgr.vbs" /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
cscript.exe "%systemroot%\system32\slmgr.vbs" /ato
sc stop sppsvc
:end
จำนวนจุดในบรรทัดที่ 3 คือจำนวนคำขอที่ต้องการไปยังเซิร์ฟเวอร์ KMS (ในตัวอย่างนี้ เราจำลองการเข้าถึงไคลเอ็นต์ที่ไม่ซ้ำกัน 25 รายการ)
ในสคริปต์ เพิ่มการหน่วงเวลา 5 วินาที ในบางกรณี ระบบส่งคืนว่าไฟล์ไม่ว่าง และความพยายามในการเปิดใช้งานก็ไม่นับรวม
สำคัญ . อย่าเรียกใช้สคริปต์นี้บนเซิร์ฟเวอร์ KMS เอง! ไม่เช่นนั้น คุณจะต้องเปิดใช้งานเซิร์ฟเวอร์ KMS อีกครั้ง (อนุญาตให้พยายามเปิดใช้งานคีย์ VLC เพียง 6 ครั้งเท่านั้น)หลังจากรันสคริปต์แล้ว ให้ตรวจสอบจำนวน KMS:
slmgr /dli
มูลค่าของจำนวนปัจจุบันควรเพิ่มขึ้น 25 หลังจากนั้นเซิร์ฟเวอร์ KMS จะเปิดใช้งานระบบเดสก์ท็อปทั้งหมดที่เข้าถึงได้ (ไม่ว่าจะเป็น Windows 7, 8 หรือ Windows 10) ภายหลังสคริปต์นี้ (หากมีไคลเอ็นต์จริงไม่เพียงพอ) ควรรันทุก 30 วัน เนื่องจากจำนวนการเปิดใช้งานจะลดลงหากไม่มีคำขอเปิดใช้งานไปยังเซิร์ฟเวอร์
วิธีเพิ่มจำนวนการเปิดใช้งานโดยใช้สแนปชอต VM
หากสคริปต์ข้างต้นไม่ได้ช่วยให้คุณเพิ่มจำนวนการเปิดใช้งานบนเซิร์ฟเวอร์ KMS คุณสามารถเพิ่มค่าตัวนับได้โดยใช้เทคโนโลยีสแนปชอตเครื่องเสมือนใน Hyper-V / VMWare อัลกอริทึมมีดังนี้:
- สร้าง VM ใหม่ด้วย Windows 10 (อย่าเปิดใช้งานและอย่าป้อนคีย์ GVLK ทางที่ดีควรยกเลิกการเชื่อมต่อจากเครือข่ายชั่วคราว)
- สร้าง 2 สคริปต์ต่อไปนี้บนเดสก์ท็อป VM ซึ่งหนึ่งในนั้นรีเซ็ต CMID และเปลี่ยนชื่อโฮสต์ อันที่สองทำการเปิดใช้งานระบบปฏิบัติการRearm.bat
start “cmd /c slmgr /rearm" timeout /t 15 /nobreak > NUL
wmic computersystem where name="%COMPUTERNAME%" call rename name="vmpc-%random%"
shutdown /r /t 0 kms_activate.batset skms= kms_server.woshub.com
sc start sppsvc
script.exe "%systemroot%\system32\slmgr.vbs" /skms %1
cscript.exe "%systemroot%\system32\slmgr.vbs" /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
cscript.exe "%systemroot%\system32\slmgr.vbs" /ato - ใส่สคริปต์ kms_activate.bat ในการเริ่มต้น Windows
- สร้างสแน็ปช็อตของเครื่องเสมือน
- เรียกใช้สคริปต์ Rearm.bat ด้วยสิทธิ์ของผู้ดูแลระบบ เครื่องเสมือนจะรีบูตและเปิดใช้งานบนเซิร์ฟเวอร์ KMS
- ย้อนกลับ VM เป็นสถานะก่อนหน้า
- ทำตามขั้นตอนที่ 5, 6 หลาย ๆ ครั้งตามจำนวนคำขอเปิดใช้งานที่คุณต้องการเพิ่มบนเซิร์ฟเวอร์ KMS