Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows 7

Cách tăng KMS Current Count (số lượng kích hoạt không đủ)

Chúng tôi đã giới thiệu về cài đặt, cấu hình và kích hoạt sản phẩm Microsoft (Office, Windows) bằng Key Management Service (KMS). Hôm nay sẽ tìm hiểu về bộ đếm kích hoạt KMS, cách đếm số lượt kích hoạt client và phương pháp tăng thủ công số yêu cầu kích hoạt KMS.

Hiểu về kích hoạt KMS

Cơ bản về KMS volume activation được mô tả chi tiết trong bài KMS Activation FAQ. Cũng nên đọc:

  • Cài đặt KMS server trên Windows Server 2012 R2 / 2016
  • Kích hoạt KMS cho MS Office 2016 / 2013

Theo chương trình Volume License của Microsoft, gói license tối thiểu là 25. Mỗi khách hàng nhận được khóa CSVLK (KMS host key) để kích hoạt KMS server nội bộ. Client nội bộ (Windows và Office) kích hoạt trên server này mà không cần kết nối Internet đến server Microsoft.

Lỗi kích hoạt 0xC004F038: Số lượng KMS báo cáo không đủ

Ngay sau cài đặt và kích hoạt, KMS server sẽ không kích hoạt client ngay. Khi thử kích hoạt Windows 7 Pro trên KMS mới, nhận lỗi:

Đang kích hoạt Windows 7, Professional edition

0xC004F038: Dịch vụ cấp phép phần mềm báo cáo máy tính không thể kích hoạt. Số lượng do Key Management Service (KMS) báo cáo không đủ. Vui lòng liên hệ quản trị hệ thống.

Cách tăng KMS Current Count (số lượng kích hoạt không đủ)

KMS server có activation count (kms counter) tăng sau mỗi yêu cầu kích hoạt từ client mạng. Khi truy cập, KMS gán CMID (Client Machine ID) duy nhất cho mỗi client và lưu vào cache local. OS client không được kích hoạt ngay. Các yêu cầu tích lũy trong cache KMS cho đến khi vượt ngưỡng tối thiểu trong 30 ngày gần nhất: 5 yêu cầu từ Server OS và 25 yêu cầu từ Desktop OS (ngưỡng riêng biệt). Nếu client không liên hệ KMS trong 30 ngày, CMID bị xóa khỏi database và counter giảm 1.

Xem CMID trên máy tính:

Get-WmiObject -class SoftwareLicensingService -ComputerName salarypc121 | Select-object ClientMachineID

Cách tăng KMS Current Count (số lượng kích hoạt không đủ)

Reset CMID bằng sysprep hoặc lệnh:

slmgr /rearm

(cần reboot).

Xem tổng số yêu cầu kích hoạt trên KMS server:

slmgr /dli

Ví dụ Current count = 50.

Lưu ý: KMS server chỉ cache 50 CMID gần nhất (số client thực tế có thể lớn hơn 50).

Cách tăng KMS Current Count (số lượng kích hoạt không đủ)

Để lấy giá trị counter chính xác:

cscript slmgr.vbs /dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7
Key Management Service cumulative requests received from clients
Total requests received: 2599

→ KMS server đã nhận 2599 yêu cầu kích hoạt.

Cách tăng KMS Current Count (số lượng kích hoạt không đủ)

Chu kỳ kích hoạt KMS client là 180 ngày, mỗi 7 ngày (mặc định, đổi bằng slmgr.vbs /sri) client gia hạn kích hoạt (180 ngày tiếp). Nếu 180 ngày không gia hạn, KMS xóa CMID và giảm counter. OS client vẫn kích hoạt trong 180 ngày. Client không gia hạn trong 180 ngày chuyển sang grace period.

Nếu kích hoạt client mà counter không tăng, nguyên nhân có thể:

  1. CMID trùng lặp (thường do clone OS);
  2. Nhiều KMS server trong mạng. Client tự tìm KMS qua DNS record _vlmcs._tcp (nslookup -type=srv _vlmcs._tcp). Chỉ định thủ công: slmgr /skms kms_server.woshub.com:1688);
  3. Key client không hợp lệ (dùng MAK/retail thay vì GVLK, hoặc key sai OS).

Script tăng KMS Server Current Count

Trong một số trường hợp dù đã mua VLC nhưng khó tìm đủ client ngay để vượt ngưỡng (đặc biệt mạng nhỏ/cô lập). Lúc này client kích hoạt báo lỗi 0xC004F038.

Admin nghĩ đến tăng thủ công counter KMS. Tuy nhiên không đơn giản... Sysprep, đổi MAC address không đánh lừa được KMS. Cách phổ biến: tạo VM ảo kích hoạt trên KMS (VM phải unique). Cách này tốn thời gian và phải duy trì VM hoạt động (hoặc redeploy/bật mỗi 180 ngày).

Thay thế dễ hơn: dùng script cmd sau để tăng số lượng kích hoạt trên KMS server. Cài OS (ví dụ Windows 7 Professional), tạo thư mục, copy file BAT sau vào. Cùng thư mục tạo 2 file rỗng tên:

7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0
7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0

Chạy increase_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

Số dấu chấm trong dòng 3 = số request cần mô phỏng (ví dụ 25 dấu chấm = 25 client unique).

Script có delay 5 giây; đôi khi hệ thống báo file busy, activation attempt không được đếm.

Quan trọng: KHÔNG chạy script trên chính KMS server! Nếu không sẽ phải kích hoạt lại KMS server (chỉ cho phép 6 lần kích hoạt một VLC key).

Sau chạy script, kiểm tra KMS count:

slmgr /dli

Giá trị Current count nên tăng thêm 25. KMS server sẽ kích hoạt tất cả desktop system truy cập (Windows 7, 8, 10). Sau đó chạy script mỗi 30 ngày (nếu không đủ client thật) vì counter sẽ giảm nếu không có request activation.

Tăng activation count dùng VM Snapshot

Nếu script trên không tăng được counter, dùng công nghệ snapshot VM (Hyper-V / VMWare):

  1. Tạo VM mới Windows 10 (KHÔNG kích hoạt, KHÔNG nhập GVLK, tốt nhất tạm ngắt mạng);
  2. Tạo 2 script trên Desktop VM: một reset CMID + đổi hostname, một kích hoạt OS.
    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.bat
    set skms=kms_server.woshub.com
    sc start sppsvc
    cscript.exe "%systemroot%\system32\slmgr.vbs" /skms %skms%
    cscript.exe "%systemroot%\system32\slmgr.vbs" /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
    cscript.exe "%systemroot%\system32\slmgr.vbs" /ato
  3. Cho kms_activate.bat vào Windows Startup;
  4. Tạo snapshot VM;
  5. Chạy Rearm.bat quyền Admin. VM reboot và kích hoạt trên KMS;
  6. Rollback VM về snapshot trước;
    Cách tăng KMS Current Count (số lượng kích hoạt không đủ)
  7. Lặp lại bước 5, 6 bao nhiêu lần tùy số request activation muốn thêm.