IT Problem
Rather than go out to Microsoft to license your PCs you can set-up an internal KMS server that will license your machines for you. This is particularly useful if you have a virtual environment where machines are created on the fly as and when they are required. Or maybe you just want one so you can control your license allocation internally. This is a step by step guide on how to set-up a KMS server on server 2008 or Server 2012 so that you can license Windows XP, Windows 7, Windows 8 and also server OS`s.
If you are not running server 2008 R2 then you MUST install this patch from Microsoft first
Setting up a Windows 2008 or 2012 KMS Server
Now, a bit of background. I had to set this up as a client was using VMware VDI. This is for dumb terminals with no OS; when a user turns on they connect to VMware VDI and it quickly clones a PC from a base image and delivers it to the user. The issue with this is PCs are created on a regular basis and when they are not used they are removed. This could be a licensing nightmare…step up KMS!
So first drop to a command line on the server what you would like to be your KMS server and enter the below, where you see my license key you need to enter YOUR KMS key for the SERVER OS that is installed on your server, so mine is server 2008R2 so I enter my server 2008R2 KMS.
cscript C:\windows\system32\slmgr.vbs /ipk BMR8R-38EVD-2HJPK-PCH12-Y938C
This is where sometimes there is confusion, yes you want to license you Windows 7 machines but your server 2008/2012 KMS license has your company`s Windows 7 license information in it, the same with Windows XP and server etc. So, this is the only key you need.
Ok next we need to activate your server so run the below.
cscript C:\windows\system32\slmgr.vbs /ato
Your server will activate so it can license machines when they request activation. What actually happens is your KMS server puts some records in DNS that answer your PCs` requests for activation, to test this you can enter the command below.
nslookup -type=srv _vlmcs._tcp
You will see a return of yourservername.yourdomainname.com
Believe it or not that is it, there are a few other handy commands though if required. If you have an issue where a PC will not license to your KMS server then enter the command below.
slmgr -skms kms-ip-address
Finally, if you want to get the stats out of your KMS server to see how many licenses are being issued or many other stats then use the command below.
slmgr.vbs /dlv