Aller au contenu
Jérémie Vitet

Windows Server

Mettre à niveau des contrôleurs de domaine Windows Server 2012 vers 2022 en une soirée

Dix ans de retard en trois heures : contrôles en journée, promotion des DC 2022 le soir, transfert des rôles FSMO, rétrogradation des 2012, montée du niveau fonctionnel. Dix minutes de coupure et un café.

Publié le
Temps de lecture
7 min de lecture
Niveau
avancé
Statut
à jour
Vérification
Testé sur Windows Server 2012, Windows Server 2022, Exchange 2013

Les licences Microsoft 365 venaient d’arriver et la prochaine étape s’appelait Entra Connect. Or Entra Connect, comme Office et comme à peu près tout ce qui allait suivre, s’appuie sur un Active Directory en bonne santé. Le mien tournait encore sur des contrôleurs de domaine Windows Server 2012, sortis du support depuis octobre 2023. Dix ans de retard, pour être honnête. J’ai fait la mise à niveau vers 2022 en une soirée : préparation en journée, trois heures d’opération le soir, dix minutes de coupure visible. Un collègue a râlé, un bon café a réglé la situation.

Cette fiche décrit ce que j’ai contrôlé avant, ce que j’ai fait pendant, et ce que j’ai vérifié après. Elle ne prétend pas remplacer la documentation Microsoft ; elle donne l’ordre des opérations et les endroits où ça coince.

Une mise à niveau sur place de 2012 vers 2022 n’existe pas : Windows ne saute pas plus de deux versions, et vous ne voulez de toute façon pas conserver dix ans de sédiments sur un DC. La bonne méthode est celle du déménagement : on construit les nouveaux serveurs à côté, on transfère les rôles, puis on démolit les anciens. On ne rénove pas une maison en continuant d’y habiter.

  • Deux VM Windows Server 2022 fraîches, jointes au domaine comme simples membres, adresse IP fixe, mises à jour installées. Deux, pas une : un domaine avec un seul DC est un domaine avec une seule panne possible.
  • Un compte membre des groupes Admins du domaine, Admins du schéma et Administrateurs de l’entreprise : la promotion du premier DC 2022 exécute automatiquement adprep, qui étend le schéma.
  • Une sauvegarde de l’état système d’un DC 2012 et une sauvegarde des VM, faites le jour même.
  • L’inventaire de ce qui pointe vers les DC par adresse IP : options DHCP, redirecteurs DNS, clients LDAP et LDAPS (pare-feu, Wi-Fi, applications), sources NTP, relais SMTP. C’est cette liste qui décide de la durée de la coupure.
  • Une vérification de compatibilité des applications qui parlent à l’annuaire. Dans mon cas, deux points chauds : un Exchange 2013 sur un Windows Server 2012 R2 qui ne pouvait pas être mis à niveau, et un serveur BI encore sous 2008.

En journée : contrôler la santé de l’annuaire

Section intitulée « En journée : contrôler la santé de l’annuaire »

Rien ne se migre proprement depuis un annuaire malade. Passez ces commandes sur un DC 2012 et lisez vraiment la sortie ; une erreur de réplication ignorée le matin devient une soirée blanche.

Bilan de santé avant de toucher à quoi que ce soit
dcdiag /c /v /f:C:\Temp\dcdiag-avant.txt
repadmin /replsummary
repadmin /showrepl * /csv > C:\Temp\replication-avant.csv
Get-ADDomainController -Filter * | Select-Object Name, IPv4Address, OperatingSystem, IsGlobalCatalog
Get-ADForest | Select-Object ForestMode, SchemaMaster, DomainNamingMaster
Get-ADDomain | Select-Object DomainMode, PDCEmulator, RIDMaster, InfrastructureMaster
dfsrmig /getglobalstate

La dernière ligne est celle que l’on oublie. Un domaine créé il y a longtemps peut encore répliquer SYSVOL avec FRS, et un serveur 2019 ou 2022 refuse d’être promu tant que SYSVOL n’est pas passé sur DFSR. Si dfsrmig ne répond pas « Eliminated », faites la migration FRS vers DFSR en journée, en passant par les états Prepared, Redirected puis Eliminated, avec dfsrmig /setglobalstate 1, 2 puis 3, et en attendant que dfsrmig /getmigrationstate confirme chaque étape avant la suivante. C’est sans coupure, mais ça se fait avant la soirée, pas pendant.

Profitez de la journée pour envoyer le mail d’annonce : plage horaire, durée annoncée, ce que les gens verront (rien, sauf peut-être une déconnexion du partage réseau). Dix minutes de coupure prévenues passent ; dix minutes non prévenues finissent en plainte.

Le soir, étape 1 : promouvoir les nouveaux DC 2022

Section intitulée « Le soir, étape 1 : promouvoir les nouveaux DC 2022 »

Sur chaque nouveau serveur, installez le rôle et promouvez-le. Le premier prendra plus de temps : c’est lui qui étend le schéma.

Sur chaque nouveau serveur 2022
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -DomainName "example.local" `
-InstallDns:$true `
-SiteName "Default-First-Site-Name" `
-Credential (Get-Credential "EXAMPLE\admin-domaine")

Après le redémarrage, attendez que la réplication soit complète avant de toucher au second, puis avant de passer à l’étape suivante :

Forcer et vérifier la réplication
repadmin /syncall /AdeP
repadmin /replsummary
dcdiag /test:advertising /test:dns

Un DC qui apparaît dans Get-ADDomainController mais échoue le test advertising n’est pas prêt à servir des ouvertures de session : patientez plutôt que d’enchaîner.

Étape 2 : transférer les rôles FSMO et les services annexes

Section intitulée « Étape 2 : transférer les rôles FSMO et les services annexes »

Les cinq rôles de maître d’opérations passent sur le premier DC 2022 en une commande. netdom confirme.

Transférer les cinq rôles FSMO
Move-ADDirectoryServerOperationMasterRole -Identity "dc2022-01" `
-OperationMasterRole SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster, InfrastructureMaster
netdom query fsmo

Le rôle PDC emulator emporte avec lui la responsabilité de l’heure du domaine. Déclarez le nouveau porteur comme source fiable, sinon vos postes resteront calés sur un serveur qui va disparaître :

Source de temps sur le nouveau PDC
w32tm /config /manualpeerlist:"fr.pool.ntp.org" /syncfromflags:manual /reliable:yes /update
w32tm /resync

Ensuite, tout ce qui figure sur votre inventaire de la journée : redirecteurs DNS sur les nouveaux DC (Add-DnsServerForwarder), option 006 des étendues DHCP, adresses LDAP des équipements. Si DHCP tournait sur les DC 2012, exportez-le (Export-DhcpServer) et réimportez-le sur un 2022 (Import-DhcpServer) avant de rétrograder.

C’est ici que se situe la coupure. Tant que des clients ont encore un DC 2012 en DNS primaire ou des tickets Kerberos émis par lui, ils mettront quelques minutes à se retourner vers les nouveaux. Sur chaque ancien DC :

Rétrograder un DC 2012
Uninstall-ADDSDomainController -LocalAdministratorPassword (Read-Host -AsSecureString "Mot de passe admin local") -Force

Une rétrogradation propre nettoie les métadonnées toute seule. Vérifiez tout de même que les enregistrements DNS de l’ancien serveur ont disparu, y compris les enregistrements de service sous _msdcs :

Traquer les restes en DNS
Get-DnsServerResourceRecord -ZoneName "example.local" |
Where-Object { $_.RecordData.IPv4Address -eq "192.0.2.10" }

Avec des DC 2022, le niveau fonctionnel le plus élevé disponible est Windows Server 2016 : les versions 2019 et 2022 n’en ont pas introduit de nouveau. Une fois tous les DC 2012 disparus :

Niveau fonctionnel du domaine puis de la forêt
Set-ADDomainMode -Identity "example.local" -DomainMode Windows2016Domain
Set-ADForestMode -Identity "example.local" -ForestMode Windows2016Forest
Get-ADDomain | Select-Object DomainMode
Get-ADForest | Select-Object ForestMode
Contrôle Commande ou action Résultat attendu
Réplication repadmin /replsummary zéro échec sur toutes les lignes
Santé globale dcdiag /c aucun test en échec
Localisation d’un DC nltest /dsgetdc:example.local un DC 2022, sans erreur
Ouverture de session un poste utilisateur, un compte normal session ouverte, partages accessibles
Stratégies de groupe gpupdate /force puis gpresult /r stratégies appliquées depuis un DC 2022
Messagerie envoi et réception d’un mail interne et externe Exchange voit toujours l’annuaire
Journal observateur d’événements, journal Directory Service et DNS Server pas d’erreur récurrente

Chez moi, le bilan de la soirée tient en trois chiffres : trois heures, dix minutes de coupure, un serveur de plus à remplacer. Tous les serveurs étaient en 2022 le lendemain, à l’exception d’Exchange et de la BI, qui avaient chacun leur propre chantier. Entra Connect a pu s’installer la semaine suivante sur un annuaire enfin à jour.