আমাদের ব্লগে আমরা ইতিমধ্যে Microsoft পণ্যগুলো (MS Office এবং Windows) Key Management Service (KMS) ব্যবহার করে ইনস্টলেশন, কনফিগারেশন ও এক্টিভেশন সম্পর্কে লিখেছি। আজ আমরা KMS এক্টিভেশন কাউন্টারের ধারণা, ক্লায়েন্ট এক্টিভেশনের সংখ্যা গণনা এবং KMS এক্টিভেশন রিকোয়েস্ট কাউন্ট ম্যানুয়ালি বাড়ানোর উপায় নিয়ে আলোচনা করব।
KMS এক্টিভেশন বোঝা
প্রথমে KMS ভলিউম এক্টিভেশনের তাত্ত্বিক ভিত্তি গুলো এক নজরে দেখে নিই। Microsoft KMS লাইসেন্সিং সম্পর্কে বিস্তারিত জানতে আমাদের "KMS Activation FAQ" আর্টিকেলটি পড়ুন।
টিপ: আমাদের সাইটের নিচের আর্টিকেলগুলোও পড়া উচিত:
- Windows Server 2012 R2 / 2016-এ KMS সার্ভার ইনস্টল করা
- MS Office 2016 / 2013-এর জন্য KMS এক্টিভেশন
Microsoft ভলিউম লাইসেন্স প্রোগ্রাম অনুযায়ী, এক প্যাকেজে ন্যূনতম ২৫টি লাইসেন্স থাকে। প্রতিটি ভলিউম লাইসেন্স কাস্টমার একটি বিশেষ CSVLK কী (বা KMS হোস্ট কী) পায় যা ইন্টারন্যাল কর্পোরেট KMS সার্ভার এক্টিভেট করতে ব্যবহৃত হয়। ইন্টারন্যাল ক্লায়েন্টরা (Windows এবং MS Office উভয়) এই সার্ভার於 এক্টিভেট হতে পারে, Microsoft-এর এক্টিভেশন সার্ভারগুলোর সাথে ইন্টারনেটে যোগাযোগ ছাড়া।
এরর 0xC004F038: আপনার KMS রিপোর্ট করা কাউন্ট অপর্যাপ্ত
তবে, ইনস্টলেশন ও এক্টিভেশনের ঠিক পরে KMS সার্ভার সেটাকে কানেক্ট করা ক্লায়েন্টদের এক্টিভেট করবে না। আপনি যদি নতুন KMS-এ আপনার OS (এই উদাহরণে Windows 7 Pro) এক্টিভেট করার চেষ্টা করেন, তবে এই এরর পাবেন:
Activating Windows 7, Professional edition
0xc004f038: The Software Licensing Service reported that the computer could not be activated. The count reported by your Key Management Service (KMS) is insufficient. Please contact your system administrator.

ব্যাপারটি হলো KMS সার্ভারের একটি আক্টিভেশন কাউন্ট (KMS কাউন্টার) থাকে যার মান প্রতিটি ক্লায়েন্ট থেকে এক্টিভেশন রিকোয়েস্ট পাওয়ার পর বাড়ে। অ্যাক্সেস করার সময় KMS সার্ভার প্রতিটি ক্লায়েন্টকে একটি יুনিক আইডেন্টিফায়ার CMID (Client Machine Identification) অ্যাসাইন করে এবং লোকাল ডেটাবেস (ক্যাশে) এ রাখে। এই ক্ষেত্রে, রিকোয়েস্ট পাওয়া কম্পিউটারের OS তৎক্ষণাৎ এক্টিভেট হয় না। এই এক্টিভেশন রিকোয়েস্টগুলো KMS সার্ভারের ইন্টারন্যাল KMS ক্যাশে-এ জমা হয়। এটি তখন পর্যন্ত চলতে থাকে যতক্ষণ না KMS ডেটাবেসে গত ৩০ দিনের মধ্যে প্রাপ্ত এক্টিভেশন রিকোয়েস্টের একটি ন্যূনতম থ্রেশহোল্ড অতিক্রম হয়। এই থ্রেশহোল্ড হলো সার্ভার OS-র থেকে ৫টি এবং ডেস্কটপ Windows OS-র থেকে ২৫টি এক্টিভেশন রিকোয়েস্ট (ডেস্কটপ/সার্ভার OS-র এক্টিভেশন থ্রেশহোল্ডস্বাধীন, অর্থাৎ KMS কাউন্টের মান ক্লায়েন্ট OS-র থেকে ২৫টি রিকোয়েস্ট অতিক্রম করলে সার্ভার OS এক্টিভেট করবে না যতক্ষণ না সার্ভার প্ল্যাটফর্ম থেকে রিকোয়েস্টের সংখ্যা ৫-এ পৌঁছায়)। যদি ক্লায়েন্ট ৩০ দিন পর্যন্ত KMS এক্টিভেশন সার্ভারের সাথে যোগাযোগ না করে, তবে এটি স্বয়ংক্রিয়ভাবে KMS ডেটাবেস থেকে রিমুভ হয়ে যায় এবং KMS এক্টিভেশন কাউন্টার এক কমে যায়।
কোনো নির্দিষ্ট কম্পিউটারের CMID ভ্যালু নিচের কমান্ড দিয়ে পাওয়া যায়:
Get-WmiObject -class SoftwareLicensingService -ComputerName salarypc121 | Select-object ClientMachineID

CMID রিসেট করতে sysprep রান করতে পারেন বা নিচের কমান্ড ব্যবহার করুন: slmgr /rearm (রিবুট প্রয়োজন)।
KMS সার্ভার যে মোট এক্টিভেশন রিকোয়েস্ট পেয়েছে তার মান যেকোনো সময় নিচের কমান্ড দিয়ে দেখতে পারেন:
slmgr /dli
এই উদাহরণে KMS সার্ভারের KMS কাউন্টার মান (Current count) ৫০।
নোট: KMS সার্ভার শুধু শেষ ৫০টি CMID ক্যাশে করে (এই কেসে KMS ক্লায়েন্টের সংখ্যা ৫০-এর চেয়ে অনেক বেশি হতে পারে)।

কাউন্টারের সঠিক মান পেতে KMS সার্ভারে নিচের কমান্ড রান করুন:
cscript slmgr.vbs /dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7
Key Management Service cumulative requests received from clients
Total requests received: 2599
এটি বোঝায় এই KMS সার্ভার ক্লায়েন্টদের থেকে ২৫৯৯টি এক্টিভেশন রিকোয়েস্ট পেয়েছে।

KMS ক্লায়েন্ট এক্টিভেশন পিরিয়ড ১৮০ দিন, এবং প্রতি ৭ দিনে (৭ দিন ডিফল্ট, slmgr.vbs /sri কমান্ড দিয়ে পরিবর্তন করা যায়) ক্লায়েন্ট এক্টিভেশন রিনিউ করার চেষ্টা করে (আরো ১৮০ দিনের জন্য)। ১৮০ দিনের মধ্যে ক্লায়েন্ট এক্টিভেশন রিনিউ না করলে KMS সার্ভার ক্লায়েন্টের CMID ডেটাবেস থেকে রিমুভ করে এবং এক্টিভেশন কাউন্টার কমায়। ক্লায়েন্টের OS ১৮০ দিন পর্যন্ত এক্টিভেটেড থাকে। যে ক্লায়েন্ট ১৮০ দিনে KMS সার্ভারে এক্টিভেশন রিনিউ করলো না, সেটি গ্রেস পিরিয়ড মোডে চলে যায়।
যদি আপনি ক্লায়েন্ট OS কে KMS সার্ভারে এক্টিভেট করার চেষ্টা করেন এবং কাউন্ট বাড়ে না, তবে এর কারণ হতে পারে:
- CMID ডুপ্লিকেট হচ্ছে (সাধারণত OS ক্লোন করার সময় হয়);
- নেটওয়ার্কে একাধিক KMS সার্ভার আছে। ডিফল্টভাবে ক্লায়েন্টরা ডোমেনে একটি বিশেষ DNS রেকর্ড — srv _vlmcs._tcp ব্যবহার করে KMS সার্ভার অটোমেটিক্যালি খুঁজে বের করে (সার্ভারের নাম পেতে:
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 সার্ভারে এক্টিভেট করা (ভার্চুয়াল মেশিনগুলো ইউনিক হতে হবে)। কিন্তু এই পদ্ধতি খুব টাইম কনসামিং এবং সব মেশিন ফাংশনাল রাখতে হয় (বা প্রতি ১৮০ দিনে রি-ডিপ্লয় বা অন করা)।
একটি সহজ বিকল্প হিসেবে, আমরা নিচের 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
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
লাইন ৩-এ ডটের সংখ্যা KMS সার্ভারের জন্য প্রয়োজনীয় রিকোয়েস্টের সংখ্যা (এই উদাহরণে ২৫টি ইউনিক ক্লায়েন্টের অ্যাক্সেস সিমুলেট করা হয়েছে)।
স্ক্রিপ্টে ৫ সেকেন্ডের ডিলে যোগ করা হয়েছে; কিছু কেসে সিস্টেম ফাইলগুলো বysi বলে রিটার্ন করতো এবং এক্টিভেশন অটেমপ্ট কাউন্ট হয়তো না।
গুরুত্বপূর্ণ: এই স্ক্রিপ্ট KMS সার্ভারেই রান করবেন না! অন্যথায় আপনাকে KMS সার্ভার রি-এক্টিভেট করতে হবে (এক VLC কী দিয়ে শুধু ৬বার এক্টিভেট করার অনুমতি থাকে)।
স্ক্রিপ্ট এক্সিকিউশনের পর KMS কাউন্ট চেক করুন:
slmgr /dli
Current count-এর মান ২৫ বাড়া উচিত। এরপর KMS সার্ভার অ্যাক্সেস করা সকল ডেস্কটপ সিস্টেম (Windows 7, 8 বা Windows 10) এক্টিভেট করবে। পরবর্তীতে এই স্ক্রিপ্ট (যদি যথেষ্ট রিয়েল ক্লায়েন্ট না থাকে) প্রতি ৩০ দিনে একবার চালাতে হবে, কারণ সার্ভারে এক্টিভেশন রিকোয়েস্ট না থাকলে কাউন্ট কমে যাবে।
VM স্ন্যাপশট ব্যবহার করে এক্টিভেশন কাউন্ট বাড়ানো
যদি উপরের স্ক্রিপ্ট KMS সার্ভারে এক্টিভেশন কাউন্ট বাড়াতে সাহায্য না করে, তবে Hyper-V / VMWare-এ ভার্চুয়াল মেশিন স্ন্যাপশট টেকনোলজি ব্যবহার করে কাউন্টার বাড়ানো যায়। অ্যালগরিদম নিচেরমতো:
- Windows 10-এ একটি নতুন VM তৈরি করুন (এক্টিভেট করবেন না এবং GVLK কী দেবেন না, ভালো হবে সাময়িকভাবে নেটওয়ার্ক থেকে ডিসকানেক্ট রাখুন);
- VM ডেস্কটاپে নিচের ২টি স্ক্রিপ্ট তৈরি করুন, যেকোনো একটি CMID রিসেট ও হোস্টনেম চেঞ্জ করে, আরেকটি 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 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 কে পূর্বের স্ন্যাপশটে রোলব্যাক করুন;

- স্টেপ ৫, ৬ ঐতেকবার दुहरান যতবার আপনি KMS সার্ভারে এক্টিভেশন রিকোয়েস্ট যোগ করতে চান।