Vérifier et auditer la licence Windows Server : activation, VLSC, CSP, KMS/MAK, AVMA et scripts PowerShell

Besoin de confirmer la licence d’un serveur Windows sans exposer de secrets ? Voici un guide complet et opérationnel pour vérifier l’édition, la clé, le canal, le statut d’activation, l’échéance KMS, les droits de mise à niveau et la conformité, quel que soit le mode d’acquisition.

Sommaire

Vue d’ensemble de la question

Vous souhaitez savoir comment consulter, auditer et prouver l’état de licence d’un serveur Windows (édition, canal et type de clé, statut d’activation, date d’expiration éventuelle, droits de mise à niveau/virtualisation, etc.) sans divulguer d’informations sensibles. L’objectif est d’obtenir des éléments vérifiables, exportables et réutilisables pour un audit interne ou externe.

Réponse & solutions proposées

Scénario de licenceMéthode recommandéeÉtapes principales
Licences en volume (Open, Select, MPSA, EA, etc.)Portail Volume Licensing Service Center (VLSC)1. Se connecter au portail VLSC avec le compte associé au contrat de volume.
2. Ouvrir Licences > Récapitulatif pour consulter clés, quantités et droits Software Assurance.
3. Exporter un License Summary (CSV ou PDF) pour archivage et preuve.
Licences achetées via un fournisseur Cloud Solution Provider (CSP)Portail du revendeur / Microsoft 365 Admin Center1. Ouvrir l’Admin Center.
2. Facturation > Produits et services : vérifier le nombre de licences, leur statut et les échéances d’abonnement.
Instances Azure (Azure Hybrid Benefit ou BYOL)Portail AzureDans la ressource Machine virtuelle > Configuration, la section Licensing / Azure Hybrid Benefit indique si l’avantage est actif. En script, la propriété LicenseType du VM doit refléter l’état attendu.
Serveur physique ou VM locale (OEM, Retail ou Volume)Outils système– Invite PowerShell (admin) :
  – slmgr /dlv (détails licence)
  – slmgr /dli (vue rapide)
  – slmgr /xpr (échéance/activation permanente)
– Ou PowerShell CIM : Get-CimInstance -ClassName SoftwareLicensingProduct | Where-Object { $_.LicenseStatus -eq 1 } pour lister les produits activés.
Tous scénariosSupport Microsoft / RevendeurSi la licence n’apparaît pas ou qu’une erreur de portail persiste, contacter le support via VLSC/CSP ou votre interlocuteur commercial.

Avant de commencer : définitions utiles

  • OEM : clé ancrée au matériel (BIOS/UEFI pour les éditions éligibles). Transférabilité limitée.
  • Retail : clé commerciale, généralement transférable selon les termes.
  • Volume : activation MAK (Multiple Activation Key) ou KMS (Key Management Service). KMS impose une réactivation périodique et un seuil d’activations côté client.
  • AVMA : Automatic Virtual Machine Activation, réservé aux hôtes Datacenter, active automatiquement les VM invitées avec une clé AVMA dédiée.
  • AHB : Azure Hybrid Benefit, droit d’apporter sa propre licence (BYOL) sur Azure selon son éligibilité.
  • Évaluation : édition Evaluation limitée dans le temps (ex. 180 jours), convertible en édition commerciale via DISM.

Méthodes détaillées par scénario

Licences en volume via VLSC : preuves « contrat‑centrées »

Objectif : faire correspondre un serveur à un droit de licence détenu (contrat, quantité, clé, SA). Cette piste valide la propriété des droits, mais doit être corrélée à l’état technique sur le serveur.

  1. Connectez-vous au portail VLSC avec un compte rattaché au contrat (Open, MPSA, Select, EA).
  2. Accédez à Licences > Récapitulatif. Vérifiez :
    • Le programme (EA, MPSA…), le numéro d’accord et la période.
    • Les quantités par produit/édition (Standard, Datacenter) et Software Assurance (SA) active ou expirée.
    • La présence de clés MAK et/ou KMS et leur nombre d’activations restantes (pour MAK).
  3. Exportez un License Summary (PDF/CSV) et stockez-le dans un coffre documentaire interne (avec contrôle d’accès).
  4. Faites correspondre l’édition et le canal observés côté serveur (ci‑dessous) avec ce récapitulatif.

Astuce : dans un audit, un triptyque convaincant regroupe (1) un export VLSC, (2) une capture slmgr /dlv masquée des 5 derniers caractères de clé, et (3) un inventaire CMDB listant hôte/VM/édition.

Achat via CSP : conformité « abonnement‑centrée »

  1. Ouvrez le Microsoft 365 Admin Center (ou le portail de votre revendeur CSP).
  2. Allez dans Facturation > Produits et services : contrôlez le nombre de licences, leur statut, les dates d’échéance/renouvellement.
  3. Rapprochez ce stock avec votre parc (nombre d’hôtes/VM, éditions Standard/Datacenter).

Bon réflexe : consignez une capture horodatée de la page de produits/quantités et rattachez-la à votre dossier d’audit mensuel.

Instances Azure : vérifier l’Azure Hybrid Benefit

Dans le Portail Azure, ouvrez la machine virtuelle, onglet Configuration : la section Licensing / Azure Hybrid Benefit indique si l’AHB est activé.

Vérification par script (Az PowerShell) :

# Requiert le module Az et une session connectée (Connect-AzAccount)
$vm = Get-AzVM -ResourceGroupName "RG-Prod" -Name "SRV-WIN-01"
$vm.LicenseType   # La valeur "Windows_Server" indique l'activation de l'AHB

Bon à savoir : l’AHB implique que vous détenez des licences éligibles (SA/abonnements) et que le paramètre LicenseType est correctement positionné. Une incohérence (AHB activé sans droits, ou droits non utilisés) doit être régularisée.

Serveur physique ou VM locale : commandes système

Objectif : obtenir, sur le serveur lui‑même, l’édition, le canal de licence, le statut d’activation et l’échéance éventuelle (KMS/Évaluation).

Commandes essentielles

  • slmgr /dli : vue rapide (édition/canal/dernier bloc de clé).
  • slmgr /dlv : détails complets (ID d’application/installation, canal, compteur d’activation MAK, délai de grâce).
  • slmgr /xpr : statut d’activation à échéance.
    • MAK/Retail : « Activé de façon permanente ».
    • KMS : date d’expiration (ex. 180 jours) ; la machine renouvelle automatiquement tant que le KMS est joignable.
    • Évaluation : indique la date d’expiration de l’évaluation.

PowerShell : lecture WMI/CIM

# Produits Windows activés (LicenseStatus = 1), avec masquage de la clé (5 derniers caractères)
Get-CimInstance -ClassName SoftwareLicensingProduct |
  Where-Object { $_.Name -like "Windows*" -and $_.PartialProductKey -and $_.LicenseStatus -eq 1 } |
  Select-Object Name, Description, LicenseStatus, @{n="KeyLast5";e={$_.PartialProductKey}}

# Signification de LicenseStatus (référence rapide)

$map = @{
0 = "Non licencié"
1 = "Activé"
2 = "Période de grâce initiale"
3 = "Période de grâce de réactivation"
4 = "Période de grâce non authentique"
5 = "Notification"
6 = "Période de grâce étendue"
} 

OEM/clé embarquée (si présente)

# Peut retourner la clé OEM (BIOS/UEFI) si elle existe. Ne jamais partager cette valeur brute.
wmic path softwarelicensingservice get OA3xOriginalProductKey

Confidentialité : ne conservez jamais une clé complète dans un ticket ou un fichier. Documentez uniquement les 5 derniers caractères et l’édition/canal. Utilisez un marqueur de redaction sur les captures.

KMS : vérifier la découverte et le renouvellement

# Découvrir un hôte KMS via DNS (en supposant l'enregistrement SRV présent)
Resolve-DnsName -Type SRV _vlmcs._tcp

# Forcer une activation immédiate (diagnostic uniquement)

cscript.exe %windir%\system32\slmgr.vbs /ato

# Consulter l'historique d'activation dans l'observateur d'événements :

# Journaux des applications et services > Microsoft > Windows > Security-SPP

Tip : si slmgr /xpr affiche une date d’expiration sous 180 jours, le client est en canal KMS. Vérifiez la connectivité réseau vers le KMS et l’enregistrement DNS _vlmcs._tcp.

AVMA (activation automatique des VM invitées)

Sur un hôte Datacenter, les VM Windows Server peuvent être activées via une clé AVMA propre à la version (à saisir dans l’invité). Dans slmgr /dlv du VM, le canal apparaît comme VIRTUAL_MACHINE_ACTIVATION lorsque l’activation AVMA est effective.

Évaluation et conversion vers une édition commerciale

# Vérifier l'édition en place et les éditions cibles
DISM /online /Get-CurrentEdition
DISM /online /Get-TargetEditions

# Convertir (exemple) Evaluation -> Standard (remplacer XXXXX par la clé valide)

DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula 

Important : sauvegardez avant conversion et planifiez une fenêtre de maintenance ; un redémarrage est nécessaire. Assurez-vous que l’édition cible correspond à vos droits (VLSC/CSP) et à votre usage (Standard vs Datacenter).

Interpréter correctement les indications de canal

Extrait typique slmgr /dlv (Description)CanalLecture
Windows(R) Operating System, RETAIL channelRetailClé commerciale, activation permanente.
Windows(R) Operating System, VOLUME_MAK channelVolume MAKActivation comptabilisée ; Remaining activations côté VLSC utile.
Windows(R) Operating System, VOLUME_KMSCLIENT channelVolume KMSRenouvellement périodique (ex. 180 jours). /xpr affiche une date.
Windows(R) Operating System, VIRTUAL_MACHINE_ACTIVATIONAVMAActivation automatique en invité depuis un hôte Datacenter éligible.
Windows(R) Server EvaluationÉvaluationÉchéance à surveiller ; conversion requise pour la production.

Vérifier l’édition et les droits de virtualisation

Les droits de virtualisation dépendent de l’édition et du nombre de cœurs licenciés. Rappel simplifié :

ÉditionDroits de virtualisation (règle générale)Cas d’usage typique
Windows Server StandardJusqu’à 2 OSE/VM par affectation complète de cœurs (réassignation requise pour plus de VM).Hôtes avec faible densité de VM ou serveurs physiques « role-based ».
Windows Server DatacenterOSE/VM illimités sur l’hôte licencié (tous cœurs physiques couverts).Haute densité de virtualisation, clusters, Cloud privé.

Note : la licence Windows Server se compte par cœurs avec des minima par serveur/processeur. Reportez-vous à votre contrat pour les seuils exacts et conditions (Software Assurance, droits de mobilité, etc.).

Vérifier les droits de mise à niveau et de rétrogradation

  • Software Assurance (SA) active : ouvre les droits de mise à niveau vers les versions ultérieures durant la période de couverture.
  • Downgrade rights : autorisent l’utilisation d’une version antérieure (par exemple, clé de volume récente pour installer/activer une version précédente avec les supports adéquats).
  • Règle d’or : la preuve de SA/downgrade se trouve côté contrat (VLSC/CSP), pas sur le serveur. Archivez les captures/exports correspondants.

Scripts PowerShell prêts à l’emploi (sorties « anonymisées »)

Résumé de conformité local (édition, canal, statut, derniers 5 caractères)

# Exécuter en PowerShell administrateur
$lic = Get-CimInstance -ClassName SoftwareLicensingProduct |
  Where-Object { $_.Name -like "Windows Server*" -and $_.PartialProductKey } |
  Sort-Object -Property LicenseStatus -Descending |
  Select-Object Name, Description, LicenseStatus, @{n="KeyLast5";e={$_.PartialProductKey}}

$os = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" |
Select-Object ProductName, EditionID, ReleaseId, DisplayVersion, CurrentBuild, UBR

# Cartographie lisible du statut

$map = @{
0 = "Non licencié"; 1 = "Activé"; 2 = "Grâce initiale"; 3 = "Grâce réactivation";
4 = "Grâce non authentique"; 5 = "Notification"; 6 = "Grâce étendue"
}

[PSCustomObject]@{
Server          = $env:COMPUTERNAME
OS              = $os.ProductName
EditionID       = $os.EditionID
VersionAffichee = $os.DisplayVersion
Build           = "$($os.CurrentBuild).$($os.UBR)"
LicenseChannel  = ($lic.Description | Select-Object -First 1)
Status          = ($map[[int]($lic.LicenseStatus | Select-Object -First 1)])
KeyLast5        = ($lic.KeyLast5 | Select-Object -First 1)
} | Format-List 

Détection KMS (DNS) + rappel des dates d’expiration

# Requiert une résolution DNS interne
try {
  $kms = Resolve-DnsName -Type SRV _vlmcs._tcp -ErrorAction Stop
  "Découvert(s) KMS via DNS :"
  $kms | Select-Object -ExpandProperty NameTarget -Unique
} catch {
  "Aucun enregistrement SRV _vlmcs._tcp trouvé."
}

"Statut d'activation (via slmgr /xpr) :"
cscript.exe $env:windir\system32\slmgr.vbs /xpr 

Contrôle AHB (Azure) par script

# Requiert : Connect-AzAccount (si exécuté depuis une machine d'admin)
$vm = Get-AzVM -ResourceGroupName "RG-Prod" -Name "SRV-WIN-01" -ErrorAction SilentlyContinue
if ($vm) {
  "LicenseType (AHB attendu : Windows_Server) : $($vm.LicenseType)"
} else {
  "VM non trouvée depuis ce contexte Az."
}

Procédure d’audit rapide

  1. Identifier l’édition (Standard/Datacenter) et la version du serveur (winver ou rubrique registre). Documenter l’usage (hôte Hyper‑V, rôle AD, application critique).
  2. Vérifier slmgr /dlv et /xpr : noter canal (Retail/MAK/KMS/AVMA), statut, échéance KMS ou évaluation. Capturer une image après masquage des infos sensibles.
  3. Corréler avec VLSC/CSP : quantité de licences, SA active, clés MAK/KMS disponibles, droits de downgrade/upgrade.
  4. Contrôler l’adéquation édition ↔ droits de virtualisation sur les hôtes. Standard vs Datacenter.
  5. Tracer dans la CMDB : numéro d’inventaire, hôte, VM, datacenter, responsable applicatif, preuve de licence jointe (PDF/CSV/PNG masqué).
  6. Plan d’action en cas d’écart : conversion d’édition (DISM), bascule MAK→KMS (ou inverse), activation AVMA, correction AHB, ou régularisation contractuelle.

Pièges fréquents et comment les éviter

  • Confusion Évaluation vs Retail/Volume : slmgr /xpr est votre arbitre. Convertissez l’édition si nécessaire.
  • Canal KMS sans KMS fonctionnel : le client expirera. Assurez la présence de l’enregistrement DNS _vlmcs._tcp et la joignabilité du service.
  • Clé Retail sur édition Volume (ou inverse) : vérifiez /dlv, alignez l’édition/la clé/le canal.
  • AHB mal déclaré : LicenseType incohérent avec vos droits. Corrigez le paramètre ou l’éligibilité.
  • Exposition de clés : ne stockez jamais la clé complète dans un ticket. Utilisez KeyLast5 et des captures masquées. En cas de doute, slmgr /cpky supprime la clé du registre (impact à évaluer).
  • Horloge système fausse : l’activation dépend de l’heure. Synchronisez NTP (hôte et contrôleurs de domaine).
  • AVMA non actif alors que l’hôte est Datacenter : utilisez la clé AVMA correspondant exactement à la version invitée.

Checklist de preuves « prêtes pour audit »

ÉlémentContenu attenduConfidentialité
Export VLSC/CSPQuantités, clés MAK/KMS, SA, programmeDocument interne, accès restreint
Captures slmgr/dlv et /xprMasquer la clé (tout sauf les 5 derniers caractères)
Rapport PowerShellÉdition, canal, statut, KeyLast5, buildOK à partager en interne
Inventaire CMDBHôte/VM, rôle, propriétaire, datacenter/siteInterne, pas de clés
Azure (si applicable)Capture LicenseType ou sortie Az PowerShellInterne

Tableau de correspondance du statut d’activation

LicenseStatusSignificationAction recommandée
0Non licenciéActiver ou corriger la clé/canal
1ActivéConserver la preuve et surveiller
2Période de grâce initialePlanifier l’activation
3Grâce de réactivationRétablir la connectivité KMS ou réactiver
4Grâce non authentiqueVérifier le canal et l’intégrité des fichiers
5NotificationActiver d’urgence
6Grâce étendueVérifier la conformité et régulariser

Bonnes pratiques opérationnelles

  • Archivage : conservez un export PDF/CSV du résume de licences dans un espace sécurisé, avec gestion de versions et accès limités.
  • Automatisation : planifiez un script mensuel qui collecte KeyLast5, canal, statut, édition et push un CSV dans votre référentiel.
  • Post‑changement matériel : après remplacement de carte mère, resynchronisez l’activation (MAK/KMS) ; une réactivation peut être requise.
  • Hyper‑V : sur hôte Datacenter, activez AVMA dans les invités pour simplifier la conformité et éviter la gestion de clés individuelles.
  • Sécurité : ne collez pas de clés dans les tickets, utilisez des captures masquées ; chiffrez les dossiers d’audit.
  • Gouvernance : alignez votre CMDB et vos achats (VLSC/CSP) ; mettez en place un rapprochement trimestriel.

FAQ

Comment récupérer une « preuve » sans exposer la clé ?
Utilisez slmgr /dlv + capture masquée, et/ou Get-CimInstance SoftwareLicensingProduct en ne conservant que KeyLast5. Croisez avec l’export VLSC qui référence la clé MAK par ses derniers caractères.

Pourquoi /xpr montre une échéance ?
Parce que le canal est KMS. Le client renouvelle son activation à intervalle régulier auprès du KMS. Vérifiez la connectivité au KMS et l’enregistrement DNS associé.

Comment savoir si l’édition installée correspond à mes droits ?
Côté serveur, lisez l’édition (ProductName du registre ou winver). Côté contrat (VLSC/CSP), contrôlez les quantités par édition. Sur Hyper‑V, vérifiez les droits de virtualisation (Standard limité, Datacenter illimité).

J’ai une édition Évaluation en production : que faire ?
Convertissez-la avec DISM /Set-Edition et une clé valide. Assurez une sauvegarde et un créneau de redémarrage. Mettez à jour votre inventaire et conservez les preuves de licence.

Comment confirmer l’Azure Hybrid Benefit ?
Dans le Portail Azure : onglet Configuration de la VM, section Licensing. En script, Get-AzVM et vérifiez LicenseType ; la valeur attendue est Windows_Server pour AHB.

Modèle de rapport d’audit « prêt à coller »

Serveur            : SRV-WIN-01
Environnement      : PROD / Datacenter Paris
Édition/Version    : Windows Server Datacenter 2022
Build              : 20348.2402
Canal/Statut       : VOLUME_KMSCLIENT / Activé
KeyLast5           : ABCDE
xpr                : 180 jours restants (renouvellement KMS ok)
VLSC/CSP           : Contrat EA 123456, SA active jusqu'au JJ/MM/AAAA
Droits virt.       : Illimités (Datacenter)
Pièces jointes     : export VLSC (PDF), capture /dlv masquée, sortie script

Informations complémentaires utiles

  • Documentation officielle : guide VLSC (chapitre « License Summary and Product Keys »), documentation des commandes slmgr et dism, et référentiels KMS/AVMA par version.
  • Bonnes pratiques :
    • Conserver des exports PDF/CSV signés/horodatés pour simplifier les audits.
    • Vérifier et synchroniser NTP ; l’activation dépend d’une horloge fiable.
    • Activer AVMA sur les hôtes Datacenter Hyper‑V pour réduire l’empreinte clés.
    • Après un changement matériel majeur, prévoir une réactivation (MAK/KMS/AVMA/CSP).

Feuille de route corrective

  1. Désalignement édition ↔ droit : reconvertir l’édition (DISM) ou réallouer les licences côté contrat.
  2. Expiration KMS récurrente : réparer l’enregistrement DNS _vlmcs._tcp, la connectivité et les ACL pare-feu ; valider /xpr après correction.
  3. AHB incohérent : ajuster LicenseType de la VM à la réalité de vos droits, ou désactiver l’option si non éligible.
  4. Exposition de clés : purger les supports non chiffrés, re‑éditer des preuves, rappeler la politique « KeyLast5 only ».

Conclusion

En combinant indice technique (slmgr/PowerShell) et preuve contractuelle (VLSC/CSP/AHB), vous obtenez une vision fiable et défendable de la conformité Windows Server, sans fuite de secrets. Adoptez un rituel mensuel : collecter, corréler, archiver. En cas d’écart, corrigez le canal (MAK/KMS/AVMA), l’édition ou le paramètre AHB, et mettez à jour votre CMDB.

Sommaire