Reaper's Edge‎ > ‎

KMS - Keys, Keys everywhere... which one am I supposed to use?

posted Oct 29, 2010, 7:18 AM by Michael Wilson
Welcome to KMS Hell. I call it that because for two days it was my own personal nightmare. I'll spare you the gorier details and get down to what you need to know.

As a volume license customer who plans on imaging, and reimaging, your PCs several times over their lifespan, you decided to use KMS instead of MAK. Good call. The hard part is getting it setup right. Now a lot of places will say it is stupid easy, and it is, if you know which keys to use where. If not... welcome to KMS Hell. First lets look at the keys you have: 

Courtesy of the MS Licensing found here: https://www.microsoft.com/licensing/servicecenter/ you probably have a whole bunch of keys for a slew of different operating systems. KMS and MAK for Vista, KMS and MAK for Windows 7, KMS and MAK for Server 2008, KMS and MAK for Server 2008 R2, and whatever else you may own.
Then you stumbled across a webpage that showed these keys off: http://technet.microsoft.com/en-us/library/ff793421.aspx
So what are you supposed to use where? After all, the PC's you're imaging will need keys, and so will the KMS server. 

(Quick little note. You'll hear me talk a lot about KMS servers and KMS clients. Microsoft prefers to call them KMS hosts and KMS clients.)

First off, all the systems (PC or Server) that are validating against a KMS server need to be using their respective KMS client keys. That's right, every single Windows 7 Pro KMS PC in the entire world has the same product key. Same for Vista, other Windows 7 versions, and for Windows Server OS's.

So what does the KMS server use? Beats me. That all depends on what your KMS server is running on. For example, my KMS server is running on Server 2008 R2 which means the that the KMS key it's using is the KMS key for Server 2008 R2. Using that key it can validate other Windows Servers, Windows 7 clients, and Windows Vista clients. All this happens without you using your Windows 7 KMS key from MS Licensing, anywhere... ever... for all time.

Wait, if I don't need to use the Windows 7 KMS key, why did they give it to me? That key is used if you're running a really small business and decide you need to host your KMS server on another Windows 7 PC. To put it simply, inputting the Windows 7 KMS key from MS Licensing immediately turns your humble Win7 box into a big bad KMS server, whether you wanted to or not.

Okay, so now I know what key to use. How do I actually set it up and what do I need to do to my PCs to make sure they use it? First let's get that server turned on. This part is easy (if you remember which key to use). On the system that will host the KMS server run the following commands from an elevated command prompt:
slmgr /ipk <KMS key for the OS that's hosting the KMS server>
slmgr /ato
net stop sppsvc && net start sppsvc
Done. You've successfully setup a KMS server. Congratulations. There a couple... issues to know about though. The first is obvious, really. You need to make sure the network traffic can make it to your server and that means checking out the firewalls. Checkout the bottom of this page to know what to look for: http://technet.microsoft.com/en-us/library/ff793407.aspx

Now for a little on how the clients work. When a Windows PC is loaded with a KMS client key and you try to activate it will automatically contact DNS and look for a nearby KMS server. It just so happens that when you run those commands listed above and turn on a KMS server it automatically publishes it's information to DNS. That means very little work you, unless you want to be special. If you do, check out the list of links I'll be posting at the bottom of this page for more information.

Now, you probably already know this, but it bares repeating. When you first setup KMS and try to use it, it won't work. To avoid using this nifty tool for piracy Microsoft won't let a KMS server start activating clients until it receives activation requests from 25 separate clients. So how do you know what's going on? Use one of these two commands, again, from an elevated command prompt.
slmgr /dli    or    slmgr /dlv
They do the same thing, the second one just gives you more information. Interestingly enough, those commands can be run on either the server or the client, but will give slightly different results. Still, they're handy for troubleshooting. Another thing to keep in mind, especially early on, is that the slmgr /ato command from earlier can be used on a KMS client to tell it to try and activate immediately, instead of waiting the default period of time.

That should cover most of what you need to know but I do want to add one more thing. If you're like me, you're deploying Windows 7 and Office 2010 together. In Office 2010 Microsoft decided to punish it's customers, I mean pirates, by introducing activation for volume license holders. That means that Office too relies on either MAK or KMS for activation. Luckily, we can setup our existing Windows KMS server to be a KMS server for Office 2010 as well. I could tell you how to do it, but you'd be just as well off reading this other fellows blog post on it here: http://www.toddlamothe.com/deployment/office-2010-kms-host-server.htm


KMS can be a real pain to get working. Over the course of figuring all this crap out I came across a number of good resources. They're all posted below. Good look and as always, please comment if you have any questions or if this helped you out in any way. Enjoy.
Basic SLMGR commands:

List of KMS Client Keys

Extra KMS Commands

Long version of KMS commands et al.

Setting up KMS Server on Server 2008 - non R2

KMS Error codes

Check activation status:

Setting up KMS for Office 2010

More Office 2010 KMS information

Setting up a Windows 7 KMS Server

List of KMS Client Keys for Office 2010

List of KMS Client Keys for Win7, Vista, 2008, and 2008 R2
Comments