Convertir la version d’évaluation Windows 10/11 vers une version complète

Télécharger et installer Windows 10 Enterprise LTSC

Pour commencer, vous devez télécharger la version d’évaluation Windows 10 Enterprise LTSC depuis le site officiel Microsoft : https://www.microsoft.com/fr-fr/evalcenter/download-windows-10-enterprise.
Une fois téléchargé, créez une clé USB avec le fichier ISO et installez la version d’évaluation.

Convertir la version d’évaluation en version complète

Pour convertir la version d’évaluation en version complète, vous devez suivre les étapes suivantes :

  • Téléchargez le dossier des nouveaux SKU ici : Télécharger le dossier des nouveaux SKU
  • Décompressez le dossier et ajoutez les 11 sous-dossiers dans C:\Windows\System32\spp\tokens\skus
  • Redémarrez l’ordinateur

Vous pouvez utiliser les clefs de licence globale KMS temporairement si vous n’avez pas de licence afin d’effectuer la conversion vers la version de windows souhaitée : https://learn.microsoft.com/fr-fr/windows-server/get-started/kms-client-activation-keys

Une fois l’ordinateur redémarré, pour finaliser la conversion :

  • Ouvrez un invite de commande en mode administrateur
  • Entrez les commandes suivantes (M7XTQ-FN8P6-TTKYV-9D4CC-J462D correspond à LTSC suivant la version souhaitée de Windows) :
cscript.exe %windir%\system32\slmgr.vbs /rilc
cscript.exe %windir%\system32\slmgr.vbs /upk >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /ckms >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /cpky >nul 2>&1
cscript.exe %windir%\system32\slmgr.vbs /ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D
sc config LicenseManager start= auto & net start LicenseManager
sc config wuauserv start= auto & net start wuauserv
clipup -v -o -altto c:\
echo
  • Redémarrez à nouveau votre ordinateur pour terminer la conversion

Validation de votre clef avec un serveur KMS

Si vous avez déjà un serveur KMS, vous pourrez valider votre version de Windows grâce à slmgr :

slmgr /skms srv-kms.test.local
slmgr /ato

Emulation d’un serveur KMS

A des fins de test, vous pouvez émuler un serveur KMS sur une VM ou dans WSL2. Un exemple avec alpine :

apk add --no-cache git gcc make cmake build-base linux-headers
git clone https://github.com/Wind4/vlmcsd.git
make
./bin/vlmcsd

Votre serveur KMS va tourner sur le port 1688.

Il y a même une version dockerisée si vous voulez faire tourner l’image en continue dans un deployment kubernetes par exemple : https://github.com/Wind4/vlmcsd-docker

Vous pouvez lancer le conteneur en mappant le port 1688 du conteneur au port 1688 de votre machine hôte, ce qui permettra à slmgr de communiquer avec le serveur KMS via le port 1688.

docker run -d -p 1688:1688 --name vlmcsd pmietlicki/vlmcsd
slmgr /skms localhost:1688
slmgr /ato
slmgr /dlv

Ces commandes configurent le client pour utiliser le serveur KMS spécifié et tentent d’activer le système d’exploitation Windows associé. Si vous rencontrez des erreurs, assurez-vous que le port 1688 n’est bloqué ni par un pare-feu ni par d’autres configurations réseau.

Exemple de déploiement de vlmcsd dans kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: vlmcsd
  namespace: kms
spec:
  replicas: 1
  selector:
    matchLabels:
      app: vlmcsd
  template:
    metadata:
      labels:
        app: vlmcsd
    spec:
      containers:
      - name: vlmcsd
        image: pmietlicki/vlmcsd
        ports:
        - containerPort: 1688

---
apiVersion: v1
kind: Service
metadata:
  name: vlmcsd-service
spec:
  type: ClusterIP
  ports:
  - port: 1688
    targetPort: 1688
    protocol: TCP
  selector:
    app: vlmcsd

Dans ce fichier :

Le déploiement crée une réplique du conteneur vlmcsd et ouvre le port 1688.
Le service expose le déploiement sur le port 1688 à l’intérieur du cluster, utilisant ClusterIP pour rester interne au cluster.

Avec cette configuration, vlmcsd est en cours d’exécution dans votre cluster Kubernetes, et les machines qui doivent être activées peuvent pointer vers le service vlmcsd-service sur le port 1688 pour l’activation. Vous pouvez configurer les clients Windows comme mentionné précédemment en utilisant l’adresse IP du service ou le nom DNS du deployment (vlmcsd.kms.svc.cluster.local dans notre exemple) pour le paramètre /skms de slmgr.