Getting error 0xC004F074 when activating against KMS server


This error code is a very generic output to a KMS client having problems activating. To view your output, run slmgr.vbs –ato

When troubleshooting this problem, we checked the following details – if any were a problem, they would generate this error code:

  • DNS record not published at _VLMCS._tcp.client.domain. This must be an SRV record, which the KMS server will automatically register. If you have disabled this, you will need to use a GPO on the clients to point them to the correct KMS server to use
  • No network connectivity from the KMS client to the MS server on the KMS port (tcp/1688 by default). Install telnet on the client and run telnet KMS.Server.Name 1688 and make sure the screen goes blank
  • Not more than 4 hours time difference between KMS server and client. Check that your time zones are correct. If using server core, run timedate.cpl
  • No major hardware changes to the KMS server. If the KMS server is a VM and you have added a number of new devices, CPUs, memory etc, or P2Ved you will need to reactivate your KMS license
  • The KMS service must have the keys to issue for the KMS client requesting a license. For example, if the KMS server is Windows Server 2008 and you are trying to activate Windows 7, you will need an update installed on the KMS server AND the correct KMS key for Windows 7.

And the last one was the problem we hit: Our KMS server was Windows Server 2008 R2, just as the KMS clients. We’d crossed the threshold of 5 servers. But they still would not activate. The problem was that there are different license “channels” for Windows Server. They are described here:

Our servers which were having problems activating were all Windows Server 2008 R2 Datacenter Edition, and we had a “B Channel” KMS license installed on the KMS server.

We followed these steps on the KMS server to install the correct channel license:

  1. slmgr -upk
  2. slmgr -cpky
  3. slmgr -ipk <KMS Host Product Key - channel C>
  4. slmgr -ato

After doing the above, we ran slmgr -ato on the Windows Server 2008 R2 Datacenter Edition servers. Note that “Channel C” is able to active all lower level channels.