VLMCSD(7)

NAME
vlmcsd - a guide to KMS activation using vlmcsd

SYNOPSIS
vlmcsd [ options ]

DESCRIPTION
This manual describes the concepts of Microsoft KMS activation using vlmcsd. For detailed usage of vlmcsd see vlmcsd(8).

  What is KMS?
KMS is a way to activate Microsoft products that was designed for medium and large businesses. In a standard SOHO environment you enter a product key during installation and then activate your product over the Internet. This is done by sending a request to a server at microsoft.com which then either grants or refuses activation.

By entering a special key called General Volume License Key (GVLK), a.k.a "KMS client key", the product no longer asks the Microsoft server for activation but a user-defined server (called the KMS server) which usually resides in a company's intranet. vlmcsd is an independent open source implementation of a KMS server that is available for everyone while Microsoft gives their KMS server only to corporations that signed a so called "Select contract". In addition vlmcsd never refuses activation while the Microsoft KMS server only activates the products the customer has paid for.

Product activation using vlmcsd is performed in three easy steps:

1)  Run vlmcsd (or any other KMS emulator) on a computer in your network. This will be your KMS server. New users should simply run the program without any parameters. The defaults should fit the needs of most users.

2)  Install your product and enter the GVLK when you are asked for a key

3)  Configure your client (the machine where you installed your product) to use your KMS server.

However, when it comes to the details, some things turn out to be more difficult than you might think.

The most important thing to know is that KMS activation is not permanent. The computer remains activated for 180 days (30 or 45 days with consumer-only products). KMS activation however is not an evaluation license. You can repeat the activation anytime and as often as you like to extend activation to another 180 days. This normally happens automatically. For this to work, you have to ensure that a KMS server is always reachable for the clients on your network.

Beginning with Windows 8.1 the KMS server must be a different computer than the client. You cannot use vlmcsd on the same computer where you want to activate a product. If you have only one computer, you can run vlmcsd in a virtual machine. vlmcsd is also designed to run on "always-on devices", for example a router. The router becomes your KMS server then.

  How to get a GVLK?
That is relatively simple. The GVLKs are published on Microsoft's Technet web site.

Windows: http://technet.microsoft.com/en-us/library/jj612867.aspx
Office 2010: http://technet.microsoft.com/en-us/library/ee624355(v=office.14).aspx#section2_3
Office 2013: http://technet.microsoft.com/en-us/library/dn385360.aspx

These lists only include products that Microsoft sells to corporations via volume license contracts. For Windows there are inofficial GVLKs that work with consumer-only versions of Windows. Here is a list:

789NJ-TQK6T-6XTH8-J39CJ-J8D3P - Windows 8.1 Professional with Media Center
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK - Windows 8.1 Core
7B9N3-D94CG-YTVHR-QBPX3-RJP64 - Windows 8.1 Core N
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 - Windows 8.1 Core Single Language
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 - Windows 8.1 Core Country Specific
GNBB8-YVD74-QJHX6-27H4K-8QHDG - Windows 8 Professional with Media Center
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 - Windows 8 Core
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY - Windows 8 Core N
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ - Windows 8 Core Single Language
4K36P-JN4VD-GDC6V-KDT89-DYFKP - Windows 8 Core Country Specific

The above keys require activation renewal every 45 days (Win 8.1) or 30 days (Win 8). All GVLKs from the Microsoft Technet web site require renewal every 180 days.

  What are SLMGR and OSPP and how to use them?
You will need these utilities later. So please continue reading this section.

These are two Visual Basic script utilities that are used to control Microsoft's Software Protection system. To use them open a Windows Command Prompt. slmgr.vbs is for Windows. ospp.vbs is for Office 2010 and 2013. These utilities are installed with Windows and Office and you don't need to download them.

slmgr.vbs resides in the system32 directory. So you just have to type "slmgr" in the Windows Command prompt to use it. To use ospp.vbs you'll have to change the current directory to your Office installation. This is usually something like "C:\Program Files\Microsoft Office\Office14". You may type "slmgr" or "cscript ospp.vbs" without parameters to see help for these commands but this produces some rather confusing output for newbies.

  How to get the GVLK into the product?
Normally every product asks you to enter a key during installation. At this time simply enter the GVLK. If you skipped this step or entered some other key which later turned out to be non-working, you can use "slmgr /ipk GVLK" (Windows) or "cscript ospp.vbs /inpkey:GVLK" (Office) at any time.

Examples
    slmgr /ipk GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
    cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT

  Why doesn't Office accpet a GVLK?
You'll have to install a volume license (VL) version of Office. Office versions downloaded from MSDN and/or Technet are non-VL.

  How to configure a client to use a KMS server?
After you have installed a GVLK you can set your product to use your KMS server. vlmcsd or another KMS server must already be running on your server machine.

Windows

Type "slmgr /skms kms-server[:tcp-port]". Example: "slmgr /skms 192.168.1.17:1688"

Office

1)  Type "cscript ospp.vbs /sethst:kms-server". Example "cscript ospp.vbs /sethst:192.168.1.17"

2)  Type "cscript ospp.vbs /setprt:tcp-port". Example: cscript ospp.vbs /setprt:1688

tcp-port is usually 1688 unless you instructed vlmcsd to use a different port which is rarely necessary.

  How to activate my product?
If you have installed a product with GVLK and pointed it to working KMS server like vlmcsd, activation occurs automatically. This may take a while.

You may type
    slmgr /ato
    -or-
    cscript ospp.vbs /act

at any time to speed up that process. You may repeat these commands later to extend your activation for another 180 (45) days.

  Does vlmcsd work correctly?
If something does not work, it may have the cause that vlmcsd does not work correctly although this is unlikely. You can test this with the KMS client vlmcs(1). First type "vlmcs" on the same machine where you started vlmcsd. If things are ok, you should see something like this:

    Connecting to 127.0.0.1:1688 ... successful
    Sending activation request (KMS V4) 1 of 1 -> 06401-00206-296-206344-03-5179-9600.0000-3432013

If anything goes wrong, you'll see an error message. Next try "vlmcs kms-server" from another machine where kms-server is the hostname or IP address of your KMS server. If that fails while it works locally, you'll most likely have to configure your firewall that it accepts incoming connections on TCP port 1688.

  Is there an easier way than using OSPP and SLMGR?
Yes and no. KMS activation was designed for large corporations. Thus Microsoft designed KMS in a way that corporations can configure their network infrastructure to fully automate KMS activation. Since this involves DHCP and DNS, it is not that easy to accomplish that for home users. However, if you are using an open source router firmware like OpenWRT or DD-WRT, it is easy to customize DHCP and DNS.

1)  Configure DHCP that it assigns a DNS domain name to your clients (if it doesn't already), e.g. my-home-net.local

2)  Create zone my-home-net.local in your DNS server (if it doesn't exist already).

3)  Add the following records to your DNS _vlmcs._tcp.my-home-net.local. 10800 IN SRV 100 100 kms1.my-home-net.local.
    kms1.my-home-net.local. 10800 IN A 192.168.1.17 Replace 192.168.1.17 with the IP address of your KMS server. If you don't like a cache time of 10800 seconds (3 hours), replace it with another number.

This causes that clients will find the KMS server automatically.

AUTHOR
This manual page was written by Hotbird64.

SEE ALSO
vlmcsd(8), vlmcs(1)