Procédure éprouvée pour remettre en service un contrôleur de domaine restauré sans polluer la forêt : on bloque toute réplication sortante du DC, on ne laisse entrer que le PDC Emulator, on resynchronise proprement, puis on réactive la topologie en toute sécurité.
Contexte et problème à résoudre
- Un contrôleur de domaine (DC) Windows Server a subi un écran bleu FLTMGR.sys.
- La machine a été restaurée depuis une sauvegarde âgée de 10 jours et redémarrée hors réseau ; entre‑temps, de nouveaux objets Active Directory (utilisateurs, groupes, attributs…) ont été créés ailleurs dans la forêt.
- Si le DC restauré est reconnecté sans précaution, il initiera une réplication « en retard » susceptible de provoquer un USN rollback, de répliquer des métadonnées obsolètes et d’empoisonner jusqu’à 15 autres DC.
Objectif
- Bloquer toute réplication sortante depuis le DC restauré.
- N’autoriser qu’une réplication entrante ciblée depuis le PDC Emulator vers ce DC afin de le remettre à jour sans risque.
Plan d’intervention rapide (résumé)
Étape | Commande / action | Effet recherché |
---|---|---|
1. Désactiver la réplication sortante du DC restauré | repadmin /options <Nom_DC_restauré> +DISABLE_OUTBOUND_REPL | Empêche l’envoi de mises à jour obsolètes. |
2. (Facultatif) Bloquer la réplication entrante sur les DC partenaires initiaux | repadmin /options <Nom_DC_partenaire> +DISABLE_INBOUND_REPL | Barrière de sécurité supplémentaire. |
3. Vérifier la topologie | repadmin /showrepl ou console Sites et services AD | Confirmer que seul le PDC est source autorisée pour le DC restauré. |
4. Forcer la réplication du PDC vers le DC restauré | repadmin /syncall <Nom_DC_restauré> /APeD ou repadmin /replicate <Nom_DC_restauré> <PDC> <NC> /force (par partition) | Met à jour l’annuaire sans attendre le planning normal. |
5. Contrôler les journaux d’événements | Observateur d’événements → Directory Service | Détecter les erreurs : USN rollback (2095), objets persistants (1988/1989), etc. |
6. Réactiver la réplication normale | repadmin /options <Nom_DC_restauré> -DISABLE_OUTBOUND_REPL puis, si appliqué, -DISABLE_INBOUND_REPL sur les autres DC | Le DC restauré réintègre la topologie. |
Pourquoi cette méthode est sûre
Active Directory résout les conflits via des version numbers d’attributs, des horodatages et des vecteurs UTD (Up‑To‑Dateness). Mais une restauration « en arrière » peut déclencher un USN rollback : les partenaires pensent déjà avoir reçu certains USN, ce qui casse la confiance et peut stopper ou corrompre la réplication. En désactivant l’outbound sur le DC restauré, on élimine le risque qu’il pousse des changements anciens. En ne laissant entrer que le PDC Emulator, on garantit un flux de données propre, ré-ancrant le DC restauré dans l’état courant de la forêt, avant de rouvrir la topologie.
Procédure détaillée
Prérequis et garde‑fous
- Le DC restauré est démarré hors réseau (ou isolé par pare‑feu) et sain au niveau OS.
- L’heure est synchronisée (Kerberos : dérive < 5 minutes). Vérifier via
w32tm /query /status
. - Les services NTDS et DNS démarrent sans erreurs critiques.
- La restauration provient d’un backup supporté (VSS/System State). Éviter toute restauration par instantané hyperviseur qui favorise l’USN rollback.
Identifier le PDC Emulator
Sur n’importe quel DC :
netdom query fsmo
ou en PowerShell :
Import-Module ActiveDirectory
(Get-ADDomain).PDCEmulator
Étape 1 — Bloquer toute réplication sortante du DC restauré
Sur un DC quelconque (ou en session locale sur le DC restauré), exécutez :
repadmin /options <Nom_DC_restauré> +DISABLE_OUTBOUND_REPL
Alternative GUI : Sites et services Active Directory → Site → Serveurs → <Nom_DC_restauré> → NTDS Settings (clic droit) → Disable Outbound Replication.
Étape 2 — (Optionnel) Empêcher provisoirement les partenaires de recevoir
Si vous voulez une double ceinture, bloquez l’inbound sur les anciens partenaires du DC restauré (optionnel, car l’outbound est déjà coupé) :
repadmin /options <Nom_DC_partenaire> +DISABLE_INBOUND_REPL
Vous pouvez aussi isoler le DC restauré au pare‑feu (RPC/135, LDAP/389, LDAPS/636, Kerberos/88, SMB/445, etc.) en n’autorisant que le PDC Emulator pendant la remise à niveau.
Étape 3 — Vérifier la topologie et les connexions
repadmin /showrepl <Nom_DC_restauré> /verbose /all /intersite
pour l’état des partenaires et des partitions (Schema, Configuration, Domaine, DNS).- Dans Sites et services AD, vérifiez les Connection objects sous NTDS Settings. Si besoin, supprimez ou désactivez temporairement les connexions entrantes autres que le PDC vers le DC restauré.
Étape 4 — Forcer la réplication entrante depuis le PDC
Deux approches, au choix :
Approche A : synchronisation globale
Déclencher une synchronisation complète de toutes les partitions sur le DC restauré :
repadmin /syncall <Nom_DC_restauré> /APeD
/A
: toutes les partitions,/P
: propager,/e
: inter‑sites,/D
: DN complets.
Approche B : réplication ciblée par partition (recommandée en environnement sensible)
Répétez pour chaque Naming Context (NC) :
repadmin /replicate <Nom_DC_restauré> <PDC> "CN=Schema,CN=Configuration,DC=exemple,DC=local" /force
repadmin /replicate <Nom_DC_restauré> <PDC> "CN=Configuration,DC=exemple,DC=local" /force
repadmin /replicate <Nom_DC_restauré> <PDC> "DC=exemple,DC=local" /force
repadmin /replicate <Nom_DC_restauré> <PDC> "DC=DomainDnsZones,DC=exemple,DC=local" /force
repadmin /replicate <Nom_DC_restauré> <PDC> "DC=ForestDnsZones,DC=exemple,DC=local" /force
Astuce : adaptez exemple.local
à votre domaine. En multi‑domaines, répétez pour chaque domaine concerné.
Étape 5 — Contrôler les journaux et la cohérence
- Observateur d’événements → Directory Service : traquez notamment :
- 2095 (USN rollback détecté),
- 1988/1989 (objets persistants/lingering),
- 2042 (dépassement tombstoneLifetime),
- Événements DFSR pour SYSVOL, ex. 2213 (suspension après arrêt brutal).
- Vérifiez la vector clock et les latences :
repadmin /showvector /latency <Nom_DC_restauré> repadmin /showutdvec <Nom_DC_restauré> "DC=exemple,DC=local" repadmin /showrepl <Nom_DC_restauré> /errorsonly
- Contrôle global :
dcdiag /c /v /e /fix
.
Étape 6 — Confirmer SYSVOL et DNS
- SYSVOL/DFSR : backlog nul entre PDC et DC restauré :
dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem:<PDC> /rmem:<Nom_DC_restauré>
- Partages visibles :
net share
doit afficherSYSVOL
etNETLOGON
. - DNS : les zones AD‑intégrées sont à jour (console DNS ou
dnscmd /enumzones
).
Étape 7 — Réactiver la réplication et la topologie
repadmin /options <Nom_DC_restauré> -DISABLE_OUTBOUND_REPL
Si vous aviez bloqué l’inbound sur d’autres DC :
repadmin /options <Nom_DC_partenaire> -DISABLE_INBOUND_REPL
Dans Sites et services AD, restaurez/validez les Connection objects automatiques (KCC). Lancez un Check Replication Topology si nécessaire.
Scripts réutilisables (copier‑coller)
PowerShell : réplication sûre depuis le PDC
# Variables
$Restored = "NOM-DC-RESTAURE"
Import-Module ActiveDirectory
$Pdc = (Get-ADDomain).PDCEmulator
$DomainDN = (Get-ADDomain).DistinguishedName
$ConfigNC = (Get-ADRootDSE).configurationNamingContext
$SchemaNC = (Get-ADRootDSE).schemaNamingContext
$DomainDNS = "DC=DomainDnsZones,$DomainDN"
$ForestDNS = "DC=ForestDnsZones,$((Get-ADRootDSE).rootDomainNamingContext)"
# 1) Bloquer l'outbound
cmd /c "repadmin /options $Restored +DISABLE_OUTBOUND_REPL"
# 2) Répliquer en entrée depuis le PDC (toutes les partitions)
$NCs = @($SchemaNC,$ConfigNC,$DomainDN,$DomainDNS,$ForestDNS)
foreach($nc in $NCs){
cmd /c "repadmin /replicate $Restored $Pdc `"$nc`" /force"
}
# 3) Vérifications
cmd /c "repadmin /showrepl $Restored /errorsonly"
cmd /c "repadmin /showvector /latency $Restored"
# 4) Réactiver l'outbound
cmd /c "repadmin /options $Restored -DISABLE_OUTBOUND_REPL"
PowerShell : lister rapidement les partenaires d’un DC
Import-Module ActiveDirectory
$Server="NOM-DC-RESTAURE"
Get-ADReplicationPartnerMetadata -Target $Server -Scope Server |
Select-Object Server, Partner, Partition, InboundConnections, OutboundConnections
Bonnes pratiques complémentaires
- Restauration authoritative ? Si des objets créés sur le DC restauré entre la sauvegarde et le crash sont critiques, effectuez une authoritative restore ciblée (via DSRM et
ntdsutil
) avant la resynchronisation ; sinon ils seront perdus lors de l’écrasement par les partenaires. - Contrôle USN et GUID : vérifiez cohérence des InvocationID et des UTD vectors. Un rollback non détecté bloque parfois la réplication ;
repadmin /showutdvec
et/showvector /latency
aident à confirmer l’intégrité avant réouverture. - Durée < tombstoneLifetime : ne laissez pas le DC isolé au‑delà du tombstoneLifetime (par défaut ~180 jours). Au‑delà, envisagez un nettoyage de métadonnées et une réinstallation du rôle.
- Sauvegarde rythmée : conservez au moins un System State quotidien. Plus le delta est court, plus la remise à niveau est rapide et moins risquée.
- Surveillance post‑remise :
- Vérifiez toutes les partitions (Schema, Configuration, Domaine, DNS).
- Contrôlez SYSVOL/DFSR :
dfsrdiag backlog
doit revenir à 0. - Testez la création d’un utilisateur et d’un groupe puis la convergence sur tous les DC.
- Confirmez que Strict Replication Consistency est activé (par défaut depuis 2003 SP1).
Tableau de diagnostic : événements clés et actions
ID d’événement | Source | Symptôme | Action recommandée |
---|---|---|---|
2095 | NTDS Replication | USN rollback détecté | Maintenir l’outbound désactivé, répliquer uniquement depuis PDC, vérifier InvocationID et vector clocks. |
1988/1989 | NTDS Replication | Objets persistants (lingering) | Nettoyage des objets persistants, s’assurer de Strict Replication Consistency, relancer réplication. |
2042 | NTDS Replication | TombstoneLifetime dépassé | Désinstaller/rebâtir le DC ; réplication « promiscuous » à éviter ; nettoyage de métadonnées. |
2213 | DFSR | SYSVOL en pause après arrêt brutal | Valider la cohérence, lever la suspension (WMI/DFSR) et suivre le backlog jusqu’à 0. |
Check‑list de validation avant réouverture
- Réplication AD :
repadmin /showrepl <Nom_DC_restauré> /errorsonly
→ aucune erreur. - Latence :
repadmin /showvector /latency
→ latences dans la norme du site. - DNS : zones int&eacutégrées AD synchronisées, résolutions directes et inverses OK.
- SYSVOL : backlog DFSR à 0, partages
SYSVOL
/NETLOGON
présents. - Kerberos/NTP : dérive < 5 min.
- Événements : pas de 2095/1988/1989 récents.
- Rôles FSMO : PDC identifié et joignable (
netdom query fsmo
).
FAQ rapide
Puis‑je simplement rebrancher le DC restauré ?
Non. Sans désactiver l’outbound, vous risquez d’émettre des métadonnées obsolètes et de créer des objets persistants chez les partenaires.
Dois‑je toujours faire une restauration authoritative ?
Non. Un authoritative restore n’est utile que pour promouvoir quelques objets choisis. Par défaut, laissez les objets « nouveaux » créés ailleurs écraser les anciens.
Et si la réplication échoue malgré tout ?
Contrôlez DNS, l’heure, l’InvocationID, les ports RPC/LDAP, et les événements. En dernier recours, retirez le DC (désinstallation ADDS), faites un nettoyage de métadonnées, puis réinstallez.
Résultat obtenu
- Aucune propagation de données obsolètes grâce à
+DISABLE_OUTBOUND_REPL
. - Le DC restauré a été remis à niveau par réplication entrante depuis le PDC Emulator uniquement.
- Réintégration dans la topologie sans impact pour les autres DC de la forêt.
Annexe : ports utiles pour l’isolation temporaire
Service | Port | Remarque |
---|---|---|
RPC Endpoint Mapper | TCP 135 | Nécessaire aux connexions DCE/RPC (replication). |
LDAP / LDAPS | TCP/UDP 389, TCP 636 | Annuaire et découverte. |
Kerberos | TCP/UDP 88 | Authentification AD. |
SMB | TCP 445 | SYSVOL/NETLOGON. |
DNS | TCP/UDP 53 | Zones intégrées AD. |
RPC dynamiques | TCP 49152‑65535 | Plage par défaut Windows Server (configurable). |
Pièges courants et remèdes
- Snapshots hyperviseur : éviter de remonter un DC depuis un instantané non supporté. Préférez un System State.
- FRS encore actif : si votre forêt utilise encore FRS pour SYSVOL (héritage), migrez vers DFSR (FRS est obsolète) et traitez les événements
13508/13568
. - Strict Replication Consistency désactivé : réactivez‑la pour empêcher l’entrée d’objets persistants provenant d’un DC obsolète.
- DNS défaillant : sans enregistrements
_msdcs
à jour, la réplication échoue. Purgez le cache et regénérez l’inscription dynamique (ipconfig /registerdns
). - Heure désalignée : corrigez la source NTP du PDC (
w32tm /config ...
), puis resynchronisez.
Exemple consolidé de bout en bout
# 0) --- À faire AVANT de rebrancher le DC restauré ---
# Isoler le DC restauré (réseau bloqué sauf vers le PDC) et vérifier l'heure
# 1) Bloquer l'outbound
repadmin /options +DISABLE_OUTBOUND_REPL
# 2) Identifier le PDC Emulator
netdom query fsmo
# ou: (Get-ADDomain).PDCEmulator
# 3) Forcer une réplication entrante sûre (par partition)
repadmin /replicate "CN=Schema,CN=Configuration,DC=exemple,DC=local" /force
repadmin /replicate "CN=Configuration,DC=exemple,DC=local" /force
repadmin /replicate "DC=exemple,DC=local" /force
repadmin /replicate "DC=DomainDnsZones,DC=exemple,DC=local" /force
repadmin /replicate "DC=ForestDnsZones,DC=exemple,DC=local" /force
# 4) Vérifications rapides
repadmin /showrepl /errorsonly
dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem: /rmem:
# 5) Réactiver la réplication
repadmin /options -DISABLE_OUTBOUND_REPL
# 6) Validation finale
dcdiag /c /v /e /fix
En procédant ainsi — blocage de l’outbound, réplication entrante ciblée depuis le PDC, contrôles de cohérence — vous évitez la propagation d’un annuaire périmé, vous rétablissez l’état attendu et vous rouvrez la topologie sans risque.