KMS expliqué d’une autre façon (mis à jour)

KMS, ou Key Management System, est un service permettant de répondre aux demandes d’activation des systèmes Windows Vista et Windows Server 2008 sans spécifier de clé au niveau des machines “clientes” ni avoir besoin de contacter les services d’activation de Microsoft sur Internet.

Ce mécanisme permet de centraliser la gestion de l’activation de ces deux systèmes d’exploitation en exposant le moins possible ces clés (pas de diffusion dans un master, pas de clé transmise à des milliers de personnes, …).

 

Principe de fonctionnement de KMS

 

En bleu, la séquence d’activation du service KMS et en orange, la séquence d’activation d’un client KMS :

image

Installation :

  1. Sur un hôte Windows Server 2003, après l’installation du service KMS, la clé KMS doit être spécifiée. Sur un hôte Windows Server 2008 ou Windows Vista, la fourniture de la clé KMS active le service KMS (il n’est pas nécessaire de l’installer car il est déjà présent).

  2. Le service KMS contacte les services d’activation Microsoft sur internet (Microsoft Hosted Activation Services). Cette opération n’est réalisée qu’une seule fois. Aucun autre contact avec les services de Microsoft n’intervient par la suite sauf en cas d’ajout d’une autre clé KMS ou de renouvellement.

  3. Par défaut, le service KMS tente de créer un enregistrement SRV dans DNS. Ceci permet aux clients de le trouver facilement.

Processus d’activation :

  1. Après l’installation de la machine, le service Software Licensing tente de contacter l’hôte KMS. Tout d’abord, ce service vérifie dans la base de registre locale si un hôt KMS est spécifié. Si c’est le cas, nous passons à la seconde étape. Si ce n’est pas le cas, le service tente d’identifier l’hôte KMS en effectuant une requête DNS.

  2. Le client forme sa demande d’activation en créant son Client Machine ID puis en signant sa requête (avec de l’encryption AES) et l’envoie à l’hôte KMS en TCP sur le port 1688 (le port utilisé par KMS peut être modifié).
    Cette requête est réémise toute les deux heures en cas d’échec (dans le cas d’une machine en période de grace) ou tous les sept jours (pour une machine déjà activée via KMS).

  3. Après avoir reçu la requête d’activation, l’hôte KMS ajoute le CMID (Client Machine ID) à sa table.
    A noter que seuls les 50 derniers clients ayant demandés une activation sont présents dans cette table. Ceci permet à l’hôte KMS de s’assurer de son bon fonctionnement.

  4. L’hôte KMS renvoie au client le décompte d’activations (le nombre de demande d’activation déjà effectuées).

  5. A la réception de la réponse, le client évalue le décompte d’activations et la compare à la stratégie de license (voir plus bas cet aspect). Si le décompte a dépassé le nombre minimal de demandes d’activation, le client s’active et stocke le Product ID de l’hôte KMS, les fréquences d’activation et le Client Hardware ID.

Notion de décompte d’activation : pour qu’un hôte KMS commence à délivrer des activations aux clients qui les demandent, il est nécessaire qu’au moins 25 systèmes physiques Windows Vista ou 5 systèmes physiques Windows Server 2008 aient fait la demande. Les machines virtuelles ne sont pas comprises dans ce décompte.

Une fois atteint ce compteur, les machines qui réclament une activation pourront être activées.

Quelques exemples de décomptes :

Windows Server 2008

Windows Vista

Hôte KMS

Décompte d’activation

sur l’hôte KMS

Disponibilité de l’activation KMS

4

1

1

5

Uniquement pour les systèmes Windows Server 2008

1

4

1

5

Uniquement pour les systèmes Windows Server 2008

1

1

1

2

Aucun système

4

22

1

26

Windows Vista et Windows Server 2008

Pour ce qui concerne le cycle d’activation des clients, le voici :

image

OOB = Out-of-Box

OOT = Out-of-Tolerance

Mode dégradé = remplace le mode RFM (Reduced Functionality Mode) sur les machines Windows Vista SP1 et Windows Server 2008. Si une machine atteint l’état de mode dégradé, l’utilisation du système reste toujours possible, seuls des notifications serint affichées pour rappeler l’état non activé de la machine.

 

Les systèmes concernés

 

Les systèmes d’exploitation pouvant être activés via KMS sont les suivants (achetés en mode License en Volume) :

  • Windows Vista Professionnel (Business Edition)
  • Windows Vista Enterprise (Enterprise Edition)
  • Toutes les éditions de Windows Server 2008

Afin de simplifier la gestion des clés KMS, plusieurs types de clés KMS sont disponibles. Les clés sont regroupées en quatre groupes, représentés ci-dessous :

  • Clés Client Volume License : permet d’activer uniquement des machines Windows Vista Enterprise et Professionnel
  • Clés Groupe A : permet d’activer des machines Windows Server 2008 Web Edition et les produits du groupe Client Volume License
  • Clés Groupe B : permet d’activer des machines Windows Server 2008 Enterprise et Standard Edition et les produits du groupe Client Volume License et du Groupe A
  • Clés Groupe C : permet d’activer des machines Windows Server 2008 DataCenter Edition et les produits du groupe Client Volume License, du Groupe A et du Groupe B
image

Groupe de clés

Clé KMS

Hébergement du service KMS

Produits activables

Vista Client Volume License KMS
  • Windows Vista
  • KMS 1.x sur Windows Server 2003
  • Windows Vista Business
  • Windows Vista Enterprise
Groupe A KMS_A
  • Windows Server 2008 Web Edition
  • KMS 1.1 sur Windows Server 2003
  • Windows Vista Volume License
  • Windows Server 2008 Web Edition
Groupe B KMS_B
  • Windows Server 2008 Web Edition
  • Windows Server 2008 Standard Edition
  • Windows Server 2008 Standard Edition sans Hyper-V
  • Windows Server 2008 Enterprise Edition
  • Windows Server 2008 Enterprise Edition sans Hyper-V
  • KMS 1.1 sur Windows Server 2003
  • Windows Server 2008 Standard Edition
  • Windows Server 2008 Enterprise Edition
  • Produits du groupe A
  • Windows Vista Volume License
Groupe C KMS_C
  • Windows Server 2008 Web Edition
  • Windows Server 2008 Standard Edition
  • Windows Server 2008 Enterprise Edition
  • Windows Server 2008 DataCenter Edition
  • Windows Server 2008 DataCenter Edition sans Hyper-V
  • Windows Server 2008 pour systèmes Itanium
  • KMS 1.1 sur Windows Server 2003
  • Windows Server 2008 DataCenter Edition
  • Windows Server 2008 pour systèmes Itanium
  • Produits du groupe A
  • Produits du groupe B
  • Windows Vista Volume License

 

KMS pas à pas

 

Les étapes pour mettre en œuvre un serveur KMS sont les suivantes :

Note : la plupart des commandes exécutées avec slmgr.vbs requièrent l’exécution depuis un prompt CMD en mode privilégié.

  1. Installation du service KMS

    1. Si le service KMS doit être hébergé sur un serveur Windows Server 2003, télécharger le programme d’installation :

      Service Gestionnaire de clés 1.1 (x86) pour Windows Server 2003 SP1 et versions ultérieures
      Service Gestionnaire de clés 1.1 (x64) pour Windows Server 2003 SP1 et versions ultérieures

  2. Activation du service KMS

    1. Exécuter la ligne de commande : cscript %WINDIR%\System32\slmgr.vbs –ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXX (où XXXXX-XXXXX-XXXXX-XXXXX-XXXX est la clé KMS)

      image

      Pour que cette commande fonctionne sur un serveur Windows Server 2008, il faut utiliser une clé KMS appartenant au groupe de licences correspondant au serveur (voir plus bas les groupes de licences). L’utilisation d’une clé KMS pour Windows Vista avec slmgr.vbs retourne le code d’erreur 0xC004F015

      Sur un serveur Windows Server 2008 ou Windows Vista, cette commande active le service KMS

    2. Si le serveur hébergeant le service KMS a accès à internet, exécuter la ligne de commande : cscript %WINDIR%\System32\slmgr.vbs –ato

    3. Si le serveur KMS ne dispose pas d’un accès à internet, exécuter la ligne de commande : slui.exe 4 et suivre les instructions affichées à l’écran qui consistent à appeler le centre d’activation Microsoft et écouter la voix mélodieuse de l’automate.
      Cette étape prend quelques minutes le temps de donner l’identifiant d’installation et de rentrer ensuite l’identifiant de confirmation :
      image image
      image

    4. Redémarrer le service Software Licensing Service

Une fois le serveur KMS opérationnel, les clients peuvent commencer à demander une activation. On peut donc attendre que le cycle par défaut s’en charge ou alors forcer ces demandes en exécutant la ligne de commande suivante sur les clients : cscript %WINDIR%\System32\slmgr.vbs –ato.

Il est possible de vérifier le statut du serveur KMS en exécutant sur l’hôte KMS la ligne de commande suivante : cscript %WINDIR%\System32\slmgr.vbs –dlv (ou –dli pour un résultat moins verbeux)

image

On voit ici que le serveur est activé (License Status : Licensed), que le service KMS est actif (Key Management Service is enabled on this machine) mais que le décompte d’activation est à 0 ce qui veut dire qu’aucune machine n’a encore demandé d’activation.

Vous comprendrez maintenant qu’il ne faut pas spécifier de clé KMS lors de l’installation (ou même après) des autres machines de l’environnement !

Du côté client, si l’on force une demande d’activation, on obtient ceci :

image

Retour du côté serveur où nous avons deux requêtes d’activation qui ont été reçues et un décompte d’activation à 1 (la même machine a effectué 2 requêtes), il nous en faut 5 émanant de machines Windows Server 2008 ou 25 émanant de machines Windows Vista :

image

Lorsque le décompte d’activation atteind le seuil requis, la prochaine requête d’activation devrait donner ceci :

image

Et du côté serveur :

image

Où on voit deux machines ayant reçu une activation.

 

Options de configuration

 

  • Pour désactiver la publication automatique du service KMS dans DNS, créer la clé de registre suivante sur l’hôte KMS avant son activation :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SL
Nom : DisableDnsPublishing
Type : REG_DWORD
Valeur : 1

  • Pour créer manuellement l’enregistrement SRV pour le service KMS dans un DNS Microsoft :

Depuis la console DNS, sélectionner la zone DNS où l’enregistrement doit être créé puis “Click droit | Nouveaux enregistrements”

Sélectionner l’enregistrement de de type “Emplacement du service (SRV)” et cliquer sur “Créer  un enregistrement”

Spécifier les informations suivantes :

Service: _VLMCS
Protocole: _TCP
Port: 1688
Hôte offrant ce service: <FQDN_hôte_KMS>

  • Pour spécifier le serveur KMS qui doit être utilisé sur les clients, exécuter la ligne de commande cscript %WINDIR%\System32\slmgr.vbs /skms <KMS_FQDN>:<port> (ou l’adresse IP ou le nom NetBIOS de l’hôte KMS).
  • Pour réactiver la détection automatique de l’hôte KMS sur un client , exécuter la ligne de commande cscript %WINDIR%\System32\slmgr.vbs /ckms
  • Pour modifier le port utilisé par défaut (1688) par le service KMS, créer la clé de registre suivante sur l’hôte KMS et sur les clients KMS :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SL
Nom : KeyManagementServicePort
Type : REG_SZ
Valeur : <port>

  • Pour modifier l’intervalle de tentative de première activation par défaut (2 heures), modifier la clé de registre suivante :

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SL
    Nom : VLActivationInterval
    Type : REG_DWORD
    Valeur : nombre de minutes (2 heures = 120 minutes)

  • Pour modifier l’intervalle de renouvellement de l’activation par défaut (7 jours), modifier la clé de registre suivante :

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SL
    Nom : VLRenewalInterval
    Type : REG_DWORD
    Valeur : nombre de minutes (7 jours = 10080 minutes)

D’autres options de configuration sont disponibles dans le guide Volume Activation 2.0.

 

Ce qu’il peut être utile de savoir

 

  • Lorsque l’on installe une version de Windows Vista ou Windows Server 2008 depuis un média Volume License, le setup ne demande pas de clé d’activation. Ce comportement est expliqué par le fait qu’une clé temporaire est utilisée pendant l’installation. Cette clé est disponible dans le fichier .\Sources\pid.txt du média d’installation.

    Cette clé, appelée “KMS Client Setup Key”, dépend de l’édition et du système d’exploitation en cours d’installation :

    Système d’exploitation

    Clé produit

    Windows Vista Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
    Windows Vista Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
    Windows Vista Enterprise VKK3X-68KWM-X2YGT-QR4M6-4BWMV
    Windows Vista Enterprise N VTC42-BM838-43QHV-84HX6-XJXKV
       
    Windows Server 2008 Datacenter 7M67G-PC374-GR742-YH8V4-TCBY3
    Windows Server 2008 Datacenter without Hyper-V 22XQ2-VRXRG-P8D42-K34TD-G3QQC
    Windows Server 2008 for Itanium-Based Systems 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
    Windows Server 2008 Enterprise YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
    Windows Server 2008 Enterprise without Hyper-V 39BXF-X8Q23-P2WWT-38T2F-G3FPG
    Windows Server 2008 Standard TM24T-X9RMF-VWXK6-X8JC9-BFGM2
    Windows Server 2008 Standard without Hyper-V W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
    Windows Web Server 2008 WYR28-R7TFJ-3X2YQ-YCY4H-M249D
  • Il est tout à fait possible de changer le type d’activation d’une machine. On peut passer d’une activation KMS à une activation MAK ou inversement.

    Un exemple est représenté par le cas d’un administrateur ayant utilisé une clé KMS sur plusieurs serveurs Windows Server 2008, pensant que cette clé correspondait à la clé habituellement utilisée lors de l’installation de machines sous Windows XP ou Windows Server 2003. En faisant cela, chaque serveur Windows Server 2008 s’est vu activer le service KMS et potentiellement le nombre maximum d’activation de la clé KMS a pu être atteind et donc compromettre la clé KMS.

    Dans ce cas, l’administrateur peut exécuter la ligne de commande %WINDIR%\System32\slmgr.vbs –ipk TM24T-X9RMF-VWXK6-X8JC9-BFGM2 (en rapport avec le tableau précédent) pour repasser tous les serveurs (sauf l’hôte KMS) en période de grâce initiale.
    En exécutant ensuite la ligne de commande %WINDIR%\System32\slmgr.vbs –ato, les serveurs contacteront l’hôte KMS pour s’activer.

  • Pour la création de masters, il existe une fonctionnalité permettant de réarmer l’activation pour éviter qu’un master créé en janvier soit hors de la période de tolérance lors de son déploiement en décembre.
    Pour réarmer l’activation, il suffit d’exécuter sysprep.exe /generalize puis de capturer l’image du système.
    On peut réarmer toutes les versions de Windows Vista et de Windows Server 2008 3 fois à l’exception des versions Entreprise de Windows Vista et Windows Server 2008 pour lesquelles il est possible de réarmer jusqu’à 5 fois.

  • Pour afficher la description d’un code d’erreur, exécuter la ligne de commande Slui.exe 0x2a ErrorCode

 

Ressources

 

Volume Activation 2.0 Technical Guidance (en Anglais)

Guides techniques de Volume Activation 2.0 (en Français)

Product Activation for Windows Vista and Windows Server 2008 (en Anglais)

Windows Server 2008 KMS Setup Demonstration (en Anglais)

Using Server Isolation to Protect the Key Management Service (KMS) (en Anglais)

Microsoft's Software Protection Platform: Planning Activation in Isolated Environments for Windows Vista (en Anglais)

Volume Activation 2.0 for Windows Vista and Windows Server 2008 (TechNet, en Anglais)

Volume Activation 2.0 pour Windows Vista et Windows Server 2008 (TechNet, en Français)

Guide de l’activation en volume (TechNet, en Français)

Informations sur l'activation du volume pour Windows Vista

Comment résoudre les codes d'erreur de l’activation en volume sur Windows Vista

 

 

Guillaume

Windows Core Support Escalation Engineer