Protect your network from unauthorized KMS license requests “Anyone that plugs into a KMS-enabled network can grab an enterprise license for their Vista/Windows 2008 computer by default with KMS services.” Geboden oplossing is IPSec gebruiken voor communicatie met KMS host. Domain joined machines kunnen dan wel praten met KMS, maar anderen niet.
Microsoft Support - How to troubleshoot Volume Activation error codes on Windows Server 2008 and Windows Vista-based computers (KB938450)
Microsoft Support - You receive an error message when you try to activate a Windows Vista-based computer in a KMS pool: "The returned count from your Key Management Service is insufficient" (KB942961)
microsoftNOW - 0xC004F038: The returned count from your Key Management Service is insufficient
Als je de gelukkige(?) bezitter bent van een KMS key voor Vista of een server editie van Windows Server 2008, dan moet je deze key gebruiken om een server in het serverpark de rol van Key Management Service (KMS) host te geven.
Hiervoor heb je nodig:
Eén KMS key kan gebruikt worden om 6 KMS hosts te activeren. Na 6 keer gebruikt te zijn kan de key op dezelfde host nog gebruikt worden voor 9 (her)activaties, voor als de machine opnieuw ingericht moet worden.
Er zijn een aantal KMS keygroups die dat product en de lagere producten te activeren, zie voor meer details de Volume Activation 2.0 documentatie. Kort gezegd komt het er op neer dat als je een KMS key voor Server 2008 Data Center/Itanium op een KMS host zet, je vervolgens alle volume licentie edities van Windows Server 2008 en Vista kunt activeren.
Je hebt minstens één Windows Server 2008 of één Windows Server 2003 server die voorzien is van de “Key Management Service 1.1 (x86/x64) for Windows Server 2003 SP1 and Later” software (zie hier (x86) en hier (x64)) nodig om een KMS host van te maken.
Om een Server 2008 server te promoveren tot KMS host kun je bij het uitvoeren van de installatie of net daarna de server voorzien van de KMS key. Zodra deze installatie geactiveerd is, kan de server dienst doen als KMS host. Mocht je een bestaande Server 2008 server willen promoveren tot KMS host dan kan dat met behulp van C:\Windows\System32\Slmgr.vbs, het script voor configuratie van KMS. Zie verderop voor voorbeelden.
Voordat de KMS host ook daadwerkelijk machines voor jou gaat activeren, moet per product een aantal machines zich al gemeld hebben bij de KMS host. Dit is de zogenaamde “activation threshold”. In de documentatie van Microsoft staat dat dit alleen met fysieke machines werkt, maar het lijkt ook prima te werken vanaf een ESX 3.x virtuele machine. Ik heb zelf de activatie threshold voor Server 2008 activatie op een KMS host overschreden door gebruik te maken van 3 fysieke Server 2008 machines en 2 ESX VM's met Server 2008.
Om over deze eerste activatie threshold te komen heb je nodig:
Hierbij voorzie je alle KMS clients van één van de KMS Client Setup Keys. Dit zijn een vast set licentiesleutels die Server 2008/Vista vertellen dat ze bij een KMS host moeten aankloppen. Zie Microsoft TechNet - Volume Activation 2.0 Deployment Guide en Configuring KMS Clients voor de lijst met sleutels. Als je gebruik maakt van MDT en de optie “Do not specify a product key at this time” kiest bij het aanmaken van een OS task sequence, dan gebruikt de installatie automatisch de juiste KMS Client Setup Key.
Zodra een Server 2008/Vista installatie is voorzien van een KMS Client Setup Key, gaat deze op zoek naar het _VLMCS._tcp SRV record in DNS voor het domein waar de client onder valt. Dit record wordt automatisch aangemaakt door de KMS host, als dynamische DNS registratie mogelijk is. De eerst KMS host registreert zichzelf met het _VLMCS SRV record. Als er meer dan één KMS host in hetzelfde domein beschikbaar is en ze moeten allemaal via DNS gevonden kunnen worden, dan moet de security op het SRV record worden aangepast zodat alle KMS host rechten hebben om dit record aan te passen. Zie hiervoor Microsoft TechNet - Volume Activation 2.0 Deployment Guide.
Standaard publiceert de KMS host zich alleen in het domein waar deze zich in bevind. Om de KMS host te publiceren naar andere domains moet een registry key op de KMS host aangemaakt worden. Maak hiervoor onder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SL een multi-string key aan genaamd DnsDomainPublishList geef als waarde de domain suffix van de extra domeinen. Elk nieuw domein moet hierbij op zijn eigen regel staan.
Om KMS hosts/clients te configureren heeft Microsoft een VBScript meegeleverd genaamd c:\Windows\System32\Slmgr.vbs. Als je deze uitvoerd met cscript zonder parameters, krijg je een lijst van de opties:
Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation. All rights reserved. Windows Software Licensing Management Tool Usage: slmgr.vbs [MachineName [User Password]] [<Option>] MachineName: Name of remote machine (default is local machine) User: Account with required privilege on remote machine Password: password for the previous account Global Options: -ipk <Product Key> Install product key (replaces existing key) -ato Activate Windows -dli [Activation ID | All] Display license information (default: current license) -dlv [Activation ID | All] Display detailed license information (default: current license) -xpr Expiration date for current license state Advanced Options: -cpky Clear product key from the registry (prevents disclosure attacks) -ilc <License file> Install license -rilc Re-install system license files -rearm Reset the licensing status of the machine -upk Uninstall product key -dti Display Installation ID for offline activation -atp <Confirmation ID> Activate product with user-provided Confirmation ID Volume Licensing: Key Management Service (KMS) Options: -sprt <Port> Set TCP port KMS will use to communicate with clients -sai <Activation Interval> Set interval (minutes) for unactivated clients to attempt KMS connection. Th e activation interval must be between 15 minutes (min) and 30 days (max) althoug h the default (2 hours) is recommended. -sri <Renewal Interval> Set renewal interval (minutes) for activated clients to attempt KMS connecti on. The renewal interval must be between 15 minutes (min) and 30 days (max) alth ough the default (7 days) is recommended. -sdns Enable DNS publishing by KMS (default) -cdns Disable DNS publishing by KMS -spri Set KMS priority to normal (default) -cpri Set KMS priority to low
Bronnen:
Microsoft TechNet - Microsoft Volume Activation
Microsoft Download Center - Volume Activation 2.0 Technical Guidance
Windows Client TechCenter - Windows Volume Activation
Het is mogelijk om vanaf een 2003 of 2008 server Windows Server 2008 R2 en Windows 7 clients te activeren. Hiervoor moet het volgende gedaan worden:
net stop slsvc net start slsvc
Om de KMS key te upgraden (bijvoorbeeld van 2008 niveau naar 2008R2 niveau) moet je het volgende uitvoeren op de KMS host:
cscript c:\Windows\System32\Slmgr.vbs -upk
cscript c:\Windows\System32\Slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
cscript c:\Windows\System32\Slmgr.vbs -ato
Om een host te promoveren tot KMS host en deze te activeren:
cscript c:\Windows\System32\Slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx cscript c:\Windows\System32\Slmgr.vbs -ato
Mocht je (per ongeluk) een server in je omgeving hebben die voorzien is van de KMS key en geactiveerd is, maar waarvan je niet wilt dat deze andere hosts gaat activeren, dan heb je twee opties:
cscript c:\Windows\System32\Slmgr.vbs -cdns
cscript c:\Windows\System32\Slmgr.vbs -upk cscript c:\Windows\System32\Slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx cscript c:\Windows\System32\Slmgr.vbs -ato
Tested with Windows Server 2016/2019, and Windows 10 Pro.
To enable license activaton for Windows Server access to the following URL seems to be enough:
activation-v2.sls.microsoft.com
For Windows 10 you need more than acccess to activation-v2.sls.microsoft.com:
activation-v2.sls.microsoft.com activation.sls.microsoft.com crl.microsoft.com crl3.digicert.com crl4.digicert.com ctldl.windowsupdate.com displaycatalog.md.mp.microsoft.com displaycatalog.mp.microsoft.com fe3cr.delivery.mp.microsoft.com go.microsoft.com licensing.md.mp.microsoft.com licensing.mp.microsoft.com login.live.com ocsp.digicert.com purchase.md.mp.microsoft.com purchase.mp.microsoft.com slscr.update.microsoft.com validation-v2.sls.microsoft.com validation.sls.microsoft.com www.microsoft.com
Sources:
"%windir%\system32\cscript.exe" "%windir%\system32\slmgr.vbs" /dlv