KMS infrastructure consists of a KMS server that is activated by Microsoft (this operation is performed once online or by phone) and KMS clients, which send their activation requests to the KMS server. Desktop and server Microsoft Oss and MS Office can become KMS server clients.
KMS server is activated using a special corporate CSVLK key (KMS host key), which can be obtained by any Microsoft corporate customer on the Microsoft Volume Licensing site (https://www.microsoft.com/Licensing/servicecenter/default.aspx – login the site and go to the Microsoft Volume Licensing Service Center –> License -> Relationship Summary -> Product Keys -> copy the KMS host key for Windows Srv 2019 DataCtr/Std KMS). The CSVLK key is specified in the KMS server settings and the KMS server is activated on Microsoft servers over the Internet. KMS server needs to be activated only once (you will need to reactivate the KMS server if you want to activate a new CSVLK key with support for the newest Windows versions).
Single KMS server can activate an unlimited number of KMS clients. For example, even though your Microsoft agreement states that you have purchased a corporate license for 100 desktop computers, theoretically you can activate thousands of Windows copies (of course, this will be a violation of the Microsoft license agreement, but technically the KMS server doesn’t restrict you in the number of activations). Also, note that information about the carried out activations and their number is not transferred by the KMS server outside your network.
A KMS server can activate clients in different domains, as well as clients in the workgroups. One KMS server can simultaneously activate both desktop editions of Windows, and Windows Server and products from the Microsoft Office suite.
When a KMS server is installed, a special SRV (_VLMCS) record is registered in DNS. Any domain client can use this DNS record to find the name of the KMS server in the AD domain. For example, to find the KMS server name in your domain corp.contoso.com manually, run the command:
nslookup -type=srv _vlmcs._tcp.corp.contoso.com
_vlmcs._tcp.corp. contoso.com SRV service location: priority = 0 weight = 0 port = 1688 svr hostname = ny-kms01.corp.contoso.com ny-kms01.corp.contoso.com internet address = 10.0.1.100
This example shows that KMS is deployed on the ny-kms01 server and responds on TCP port 1688.
To activate a KMS client (Windows or Office), a special KMS public key must be specified on it – GVLK (Generic Volume License Key). After the GVLK is specified, the KMS client tries to find an SRV record correspondent to the KMS server in DNS and gets activated.
Here is the list of universal KMS keys (GVLK) for the latest Microsoft products:
A KMS server activated with the newer KMS host key can activate all previous Windows versions, but not vice versa. For example, a KMS server activated with a Windows Srv 2012 R2 DataCtr/Std KMS key won’t be able to activate Windows 10 or Windows Server 2016/2019.
To activate the newest Windows versions you need to get a new CSVLK key and activate it on the KMS server.
Tip. As an extension of KMS technology, another type of MS volume activation way should be mentioned — Active Directory Based Activation (ADBA). ADBA allows to automatically activate clients running Windows 8, Windows Server 2012 and MS Office 2013 (and newer) joined to the AD domain. In this case, there is no dedicated KMS server host, and the activation is performed by the special Active Directory extension (this is convenient from the point of view of fault tolerance, but not convenient if you need to activate devices not in the domain).
KMS Server Requirements
- KMS host is a server (or workstation) with the Volume Activation Services role installed. In Windows Server 2019, this role can be installed through the Server Manager console or PowerShell using the command:
Install-WindowsFeature -Name VolumeActivation -IncludeAllSubFeature –Include ManagementTool
- You need to install the corporate CSVLK key on the KMS host and activate the KMS server in Microsoft:
slmgr /ipk <kms_host_key_Windows_Server_2019>
In order to perform of the KMS server (performed only once), Microsoft websites must be accessible from the KMS server on ports 80/443. In an isolated environment, the KMS server can be activated by phone (the Microsoft support phone number for your country can be found in the file phone.inf:
- Port 1688 must be opened between the client and the KMS server on the firewalls;
- You can activate Microsoft volume products using the KMS server if the following requirements to the minimum number of KMS clients (activation threshold) are met :
- Windows Desktop OSs: 25
- Windows Server OSs: 5
- MS Office: 5
Tip. If necessary, the activation counter on the KMS server can be increased using a script.
- Computers must connect the corporate network with the KMS server to renew the activation at least once every 180 days. After 180 days, the product’s activation “crashes”, and Windows goes into the grace period. By default, KMS client computers attempt to renew their activation every seven days, If you need to activate devices that don’t connect to the corporate network with a KMS server at least once every 180 days, it is recommended to use the MAK (multiple activation) key.
- KMS is not resource-consuming service, so this role can be installed on any server. KMS doesn’t have to be highly available. If a KMS server is not available for several hours (or even days), the downtime will not affect the company in any way.
Microsoft Office KMS Server Activation
To activate MS Office products on a KMS server, a special Microsoft Office Volume License Pack has to be installed. Depending on the version of MS Office that you are using, you need to download and install a different version of volumelicensepack.
After installing the License Pack for MS Office on the KMS server, you need to install your personal Office CSVLK key and activate it.
VAMT: Volume Activation Management Tool
To manage KMS server and keys, you can install a special tool: Volume Activation Management Tool (VAMT).
- VAMT is not delivered as a part of the OS, it is included in the Windows Assessment and Deployment Kit (ADK) and installed separately;
- .NET Framework is required for VAMT;
- As VAMT database, the SQL Server Express is used;
- The latest available version, VAMT 3.1, is supported in all Microsoft OSs including Windows 10 and Windows Server 2019.
Common Microsoft KMS Activation Issues and Troubleshooting
- The installation of the corporate KMS host key (CSVLK) on the clients instead of a public GVLK key;
- GVLK key doesn’t correspond to the OS version on the host to be activated;
- The KMS server has to be updated to support the activation of the latest Microsoft products.
- If the error 0xC004F074 appears during activation, the reason can be missing SRV record
_VLMCS._tcp.corp.contoso.comin DNS. It can be created by DNS admin or the KMS server address can be specified on the client manually (commands shown below);
- The error 0xC004F038 means that there are not enough number of clients for activation in your network (see information on the activation threshold above). As soon as the minimum number of activation requests arrives on the KMS server, it will begin to activate clients;
- You can check the availability of port TCP/1688 on the KMS server using the Test-NetConnection cmdlet:
TNC par-kms -Port 1688 -InformationLevel Quiet. If the port is unavailable, access may be blocked by a firewall or the Software Protection service (sppsvc) is not running on the KMS server;
Using the Slmgr Command for Windows KMS Activation
To manage and diagnose OS activation in all Windows versions, there is a built-in script – slmgr.vbs.
To install the public KMS key (GVLK) on Windows client (you need to specify the GVLK key depending on the Windows edition) use the command:
cscript.exe %windir%system32slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
Manually specify the KMS server name and activation port:
cscript.exe %windir%system32slmgr.vbs /skms kms-srv.corp.contoso.com:1688
To activate Windows on the specified KMS server:
Information about the Windows activation status:
All licensing information (including MS Office activation status):
slmgr.vbs /dlv allTip. A pop-up window with licensing information is not always scrollable and doesn’t often fit on the screen. You can output this information into the text file to make the analysis more convenient:
cscript.exe %windir%system32slmgr.vbs s /dlv all > c:tmpdlv.txt
How to Manually Activate MS Office with KMS License Server?
To manage the activation of products from the Microsoft Office suite on clients, another vbs script is used – ospp.vbs. You can find it by searching the Office installation directory (in the case of Office 2016, the ospp.vbs file by default is located in the Program FilesMicrosoft OfficeOffice16 directory).
To manually specify the KMS server address for MS Office:
cscript ospp.vbs /sethst:kms-srv.corp.contoso.com
To change the KMS activation port:
cscript ospp.vbs /setprt:1689
Activate your Office copy on the KMS server:
cscript ospp.vbs /act
You can get the current activation status of Office 2016/365 with the command:
cscript ospp.vbs /dstatusall
If you have any questions concerning Microsoft KMS activation technology, you are welcome to ask them in the comments and I’ll try to answer them as far as possible.