Duplicate CMIDs and how they affect KMS hosts

The CMID ( Client Machine ID) is a unique ID that is used by a KMS host to activate the license on the machine. Typically each system has it’s own ID and there are no issues but with the use of tools such as cloning the CMID can be duplicated. When the KMS host treats each CMID as 1 client, so if you have 200 systems all containing the same CMID the KMS host has only activated 1 client machine. This results inaccurate licensing activation by your KMS host.

So what causes these duplicates you ask? Normally this is caused by some sort of cloning or imaging of a system that did not sysprep with the sysprep /generalize option, see Microsoft KB929829. I have also seen this happen when you deploy a vm from a vCenter template and you do not use the customization wizard to customize your vm.


Once the CMID is set unfortunately Microsoft does not support changing the CMID, however it is possible to do so. Microsoft does not support changing the CMID and their recommended workaround is too re-image the system using the sysprep /generalize option because changing the CMID may cause the OS to become unstable. With a user’s system that is easier to re-image but let’s say you have several production servers that have duplicate ID’s?

Good luck with telling the application owners that you need to re-deploy their server to fix a duplicate CMID. I’m sure that will go over well. If you work in a company like mine,where that would not fly well, you have 2 options either you live with the duplicate CMIDs ( prevent future duplicates) or change it by resetting the CMID.

If you’re daring like me , I would look for the reset option and test it, to see what happens. Changing or resetting the CMID on a system is technically re-arming the licensing on the system. To re-arm the licenese you will need to logon to the system with the duplicate ID and run the following command:

cscript c:\windows\system32\slmgr.vbs /rearm


So there you go, you can change the CMID just keep in mind it’s not support by Microsoft if you do. The best thing to do is just avoid having duplicates by running the sysprep /generalize option when cloning systems. If you’re deploying vm’s just remember to run the customization wizard or have a precanned setting wizard all ready to go.