How to increase KMS current count (count is insufficient)

On our blog we have already bring information about the installation, configuration and activation of Microsoft products (MS Office and Windows) using Key Management Service (KMS). Today we will take a look at the concept of KMS activation counter, consider how to count the number of client activations and ways to manually increase the KMS activation request count.

According to the Microsoft Volume License program, the minimal amount of licenses in one package is 25. Each Volume License customer gets a special CSVLK key (or KMS host key) which is used to activate an internal corporate KMS server. Internal clients (both Windows and MS Office) can be activated on this server with the help of KMS server, without having to contact Microsoft’s activation servers over the Internet.

However, right after the installation and activation, the KMS server will not activate the clients that contacted it. If you try to activate your OS (Windows 7 Pro, in this example) on a new KMS, you receive an error:

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.

The matter is that the KMS server has a so-called activation count (kms counter) which value is incremented after each activation request is received from a network client. When accessed, the KMS server assigns a unique identifier CMID (client machine identification) to each client and puts it into local database (cache). In this case, the OS of the computer from which the request was received is not activated immediately. These activation requests are accumulated in the internal KMS cache on the server. This occurs until a certain minimum threshold of activation requests received within the last 30 days has been overcome in the KMS database. This threshold is 5 activation requests from the server OSs and 25 activation requests from the desktop Windows OSs (the activation thresholds for desktop/server OSs are independent, i. e. if the value of the KMS count has exceeded 25 activation requests from client OSs, this server will not activate server OSs until the number of activation requests from these platform reaches 5). If the client does not contact the KMS activation server during 30 days, it is automatically removed from the KMS database, and the KMS activation counter is reduced by one.

You can get the CMID value on a particular computer using the following command:

You can reset the current CMID by running sysprep or using the command:

slmgr /rearm (need a reboot).

At any time, the total number of activation requests received by the KMS server can be viewed using the command:

slmgr /dli

In this example, the KMS counter value (Current count) on the KMS server is 50.

Note. The KMS server caches only the last 50 CMIDs (in this case, the number of KMS clients on the server can be significantly more than 50).

To get the exact value of the counter, run the following command on the KMS server:

cscript slmgr.vbs /dlv 98ebfe73-2084-4c97-932c-c0cd1643bea7

Key Management Service cumulative requests received from clients Total requests received: 2599

This means that this KMS server received 2599 activation requests from clients.

KMS client activation period is 180 days, and every 7 days (7 days is set by default, it can be changed with the command slmgr.vbs /sri) the client tries to renew the activation (for the next 180 days). If within 180 days the client did not renew the activation, the KMS server removes the client’s CMID from the database and reduces activation counter. The client’s OS still activated within 180 days. The client that hasn’t renewed its activation on the KMS server during 180 days, it goes into the grace period mode.

In case if you try to activate the client OS on the KMS server and the count doesn’t increase, it can be caused by the following reasons:

Duplicating CMID (usually it takes place when cloning an OS);

More than one KMS server in the network. By default, clients can automatically find the KMS server in the domain using a special DNS record – srv _vlmcs._tcp (you can get the name of the server using command: nslookup -type=srv _vlmcs._tcp). You can manually specify the KMS server name as follows: slmgr /skms kms_server.woshub.com:1688);

Invalid key specified on the client. For example, instead of an public GVLK (Generic Volume License Key), MAK / retail key is specified, or a key not corresponding to the operating system.

Script to Increase KMS Server Current Count

In some cases even if a VLC has been purchased, it is difficult to find immediately necessary number of clients to overcome the activation threshold of the KMS server (the problem is particularly relevant for small or isolated networks). When the client is trying to activate on the server in this case, an error 0xC004F038 appears.

In this case an administrator starts thinking about manually increasing the KMS activation counter. However, it’s not so simple… Neither sysprep, nor a change of the MAC address for a network card help you to cheat the KMS server. As a quite popular variant, it is suggested to create the missing number of virtual machines and activate them on the KMS server (virtual machines have to be unique). However, this method is quite time consuming and requires keeping all these machines functional (or their re-deploying or turning on every180 days).

As an easier alternative, we recommend you to use the following cmd script that allows to increase the activations count on the KMS server. Install the necessary version of the OS (in this example, it is Windows 7 Professional), create a directory and copy the following BAT file into it. In the same folder create two empty files named:

The number of dots in the line 3 is the required number of requests to the KMS server (in this example, we simulate the access of 25 unique clients)

In the script, a 5 second delay is added; in some cases, the system returned that the files are busy, and the activation attempt was not counted.

Important. Do not run this script on the KMS server itself! Otherwise, you will need to reactivate the KMS server (only 6 attempts to activate one VLC key are allowed).

After the script is executed, check the KMS count:

slmgr /dli

The value of the Current count should increase by 25. After that the KMS server will activate all the desktop systems accessing it (whether Windows 7, 8 or Windows 10). Later this script (if there is not enough real clients) should be run every 30 days, since the activation count will reduce if there wouldn’t be activation requests to the server.

How to increase the activation count using VM snapshots

If the above script did not help you to increase the activation count on the KMS server, you can increase the counter value by using virtual machine snapshot technology in Hyper-V / VMWare. The algorithm is as follows:

Create a new VM with Windows 10 (do not activate it and do not enter GVLK key, it’s best to temporarily disconnect it from the network);

20 comments

This script does not increase the Current Count on Windows 8.1. Looking in the KMS Logs, it still reports the same CMID so KMS does not increase the count.

Reply

TJceeDecember 31, 2014 - 5:29 pm

John.. just a guess here. But the script above includes the Client KMS key for Windows 7 Pro. This is not the same as the key for Windows 8.1. You’ll need to change the key where it says “cscript.exe “%systemroot%\system32\slmgr.vbs” /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4″ To a key for your version of 8.1 – One of these:

Windows 8.1 Professional

GCRJD-8NW9H-F2CDX-CCM8D-9D6T9

Windows 8.1 Professional N

HMCNV-VVBFX-7HMBH-CTY9B-B4FXY

Windows 8.1 Enterprise

MHF9N-XY6XB-WVXMC-BTDCT-MKKG7

Windows 8.1 Enterprise N

TT4HM-HN7YT-62K67-RGRQJ-JFFXW

Reply

KaylaApril 22, 2015 - 12:40 pm

This didn’t work for me.. I’m trying to activate Windows 7 Professional. I changed the name of the KMS server to the correct one, made the folder and put the script file and the two empty files in it. I’m still seeing duplicate CMIDs. Does it no longer work?

Reply

ScottApril 22, 2015 - 5:51 pm

Thank you so much. The issue shown with the low count for slmgr –dlv was exactly what I was having trouble with. Once this batch pushed it to 25 we were good to go! Thanks a ton!

Can anybody explain the significance of the two empty files? What is their role in this process? If I were to change the client key to something other than Win7Pro would I need to change those file names? How did the author determine the names of those files? Cheers and thank you very much for this information. It has been extremely useful in my test lab.

Reply

NoelMay 13, 2015 - 10:39 am

These files are the part of the Windows activation subsystem, first appeared in Windows Vista. They point out that system is activated on KMS server. You can change client key on any corresponding to your system

Reply

MansieJune 2, 2015 - 11:08 pm

Thanks! This worked well on increasing our KMS Counts for Windows 7 Enterprise. But is there a similar script for for activating Office 2010 as well?

Reply

TomSeptember 30, 2015 - 12:53 pm

Thanks, worked a treat. Some comments: Downloaded script was one long command and needed line adjustment. Didn’t reduce the number of dots so it took my count from 23 to 49 (after its last self activation). A warning about an unauthorised alteration of Windows popped up and had to be clicked during each loop.

Reply

BenniNovember 4, 2015 - 12:38 pm

First, thanks for the script. I had to modify it a bit. I also got the warning as Tom did, but you can ignore it until the script has finished.

Trying to get this to ingress the count on Windows 10. Not sure what Key to use.

Reply

BillJune 21, 2016 - 8:28 pm

Thanks for this write-up and especially the script, its very timely for me and worked like a charm once i edit the line with product key with Windows 10. I like old threads with high order in searches like this one with a solution that works and not a question without an answer to it. Cheers!

Reply

MatiasJuly 12, 2016 - 1:50 pm

Hi, I’ve installed a Win 2012 R2 with the “Windows Srv 2012R2 Standard KMS for Windows 10” key. The current count is 15 and it’s not increasing. I cannot activate Windows 10 clients, they give me the error 0xC004F038. I tried to use the script but it’s not working for me. Should I run it directly in the KMS server? Which key should I put into the .bat? Thanks!

Reply

IVANAugust 11, 2016 - 4:09 pm

How the empty files are created?

Reply

JMJJAugust 17, 2016 - 7:17 pm

Watch out for formatting issues. insert a pause after the various commands so you can see where the batch is breaking down at if you are not successful. If you aren’t getting the warning that you have to click close on, then its erroring out some place. How to enter a pause? create a blank line and type in pause. Use the client keys from here: https://technet.microsoft.com/library/jj612867.aspx If you want to run up windows 10, run the batch file from a windows 10 device. You need to run it from the device that needs activation. Run the batch file as administrator. IE, right click, run as administrator.

Reply

KevinSeptember 29, 2016 - 3:58 pm

Thank you very much for that script. That saved my week ! Cheers

Reply

DavidNovember 18, 2017 - 4:20 am

Are you running this on the KMS Server or just any client?

Reply

SysadminMarch 7, 2018 - 5:26 pm

This absolutely does not work!

Activation is done based on the CMID as stated. This script does nothing to change the machine’s CMID. This script is doing nothing more than re-requesting activation for the same machine each time. You will see an increase in the number of requests, but not the “Current count” which is the number of unique machines that requested a license.

The only way to activate 25 machines is to spin up unique VM’s that have been syspreped, which generates a new CMID, or supposedly doing an slmgr /rearm, which requires a reboot each time (untested but recommended by VMWare).

Reply

CzJune 19, 2018 - 11:30 am

Are you sure you are SysAdmin to post a reply like that? Have you at least tested this solution?

It works like a charm! For your information, if you stop SPPSVC service and if you replace original files “7B29… … …05A0” with empty files then CMID is removed when SPPSVC restart.