Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Active Directory – Prise en charge des scénario du type “USN Rollback”

Contexte

Suite à la restauration d’un snapshot ou d’une sauvegarde d’un contrôleur de domaine virtuel, l’erreur USN Rollback peut apparaître.

L’USN (Update Sequence Number) permet un versionning des objets utilisé par l’annuaire Active Directory, chaque modification d’un objet AD depuis un contrôleur de domaine va incrémenter le numéro USN de l’objet. En comparant entre les différents DCs leur numéro d’USN il est possible de déterminer quelle base est la plus à jour.

Lors d’une restauration d’un DC virtuel, et si l’outil de sauvegarde utilisé ne supporte pas la restauration Active Directory, il est probable qu’une erreur USN soit provoquée.

Les autres contrôleurs de domaine – en comparant leur numéro USN – vont détecter le DC restauré comme n’étant pas à jour en ne répliqueront pas avec lui.

Eviter l’USN Rollback

Les solutions suivantes permettent d’éviter une situation d’USN Rollback :

  1. Utiliser une solution de sauvegarde avec prise en charge de l’AD,
  2. Ne pas restaurer des backup dont la date excède le “Tombstone lifetime” qui est de 60 jours par défaut,
  3. Utiliser un contrôleur de domaine virtuel sous Windows Server 2012 ou ultérieur. Windows Server 2012 ajoute au contrôleurs de domaine un attribut supplémentaire (qui est géré par Hyper-V 2012) et qui évite l’USN rollback lors de la restauration d’un snapshot.

 

Symptômes de l’USN Rollback

    • La commande ”repadmin /showutdvec” retourne de différents numéros d’USN,
    • Le service NETLOGON est en pause,
    • La valeur de la clé “DSA Not Writable” est à “4”,
    • Les erreurs 2095 (NTDS Replication), 2013 (NTDS General), 2103 (USN Rollback),
    • Les réplication entrantes/sortantes sont désactivées (visible à l’aide de la commande repadmin /showrepl ),

    Résolution

    Microsoft préconise (après l’apparition d’un USN Rollback) de retirer le contrôleur de domaine défaillant, après avoir transféré les éventuels rôles FSMO qu’il héberge (NTDSUtil permet de transférer les rôles ou de les saisir s’il est impossible de les transférer correctement).

    Egalement dans le cas où la de-promotion du contrôleur de domaine ne se passe pas correctement, il faudra s’aider du switch “/forceremoval” de al commande DCPromo. Il faudra aussi bien penser à nettoyer les métadonnées du contrôleur de domaine défaillant, depuis un contrôleur de domaine fonctionnel.
    L’idéal est – lorsque l’on souhaite restaurer le snapshot d’un contrôleur de domaine alors que le snapshot ne supporte pas la VM-GenerationID – de démarrer le contrôleur de domaine directement en mode DSRM. Une fois démarré en mode DSRM, mettre la valeur de registre “database restored from backup” à “1”.
    Si le contrôleur de domaine a déjà été démarré en mode “normal”, il faudra le retirer (après avoir pris soin de récupérer les rôles hébergés).
    (Source :

DFS-R–Créer un rapport de réplication

Contexte

Afin de suivre l’état des partages répliqués en DFS-R – comme par exemple le partage SYSVOL depuis Windows Server 2008 – il est possible d’utiliser la fonction intégrée à DFS Management et qui permet de générer une page HTML synthétisant l’état de la réplication.

Voici les trois tests proposés par la fonction de diagnostique de DFS Management :

  • Test de propagation : Permet de vérifier la bonne réplication d’un fichier de test,
  • Rapport de propagation : Génère le rapport de propagation du fichier de test utilisé lors du Test de propagation,
  • Rapport de santé : Génère un rapport présentant les éventuels erreurs/warnings des serveurs membres ainsi que le bon fonctionnement de la réplication (en affichant par exemple le gain réseau par rapport à une réplication classique de type FRS).

Cet article ne traitera que de la fonction “Health Report”.

    Créer un rapport de santé (GUI)

    Depuis la console “DFS Management” dans la partie “Replication”, choisir le lien de réplication que l’on souhaite vérifier, puis faire clique-droit et choisir “Create Diagnostic Report” :

image

 

La page suivante propose les trois tests mentionnés plus haut, choisir “Health Report” :

image

La page suivante affiche le nom du rapport qui sera généré, et nous permet d’en choisir l’emplacement :

image

Choisir les membres que l’on veut voir apparaitre dans le rapport de santé dans la partie “Included members” :

image

La page suivante permet de spécifier deux points importants dans l’exécution du rapport (dans cet exemple, seule l’option “Count backlogged files” sera utilisée) :

1. Les “backlogged files” (qui sont les fichiers à répliquer) doivent-ils être comparés pour vérifier que tous les serveurs répliquent correctement les nouveaux changements ?

Pour ce test, un membre de référence doit être indiqué, il s’agira du membre dont les fichiers sont les plus à jour.

2. “Count the replicated files and their sizes in each member” cette option permet de comparer tous les fichiers répliqués ainsi que leurs tailles entre tous les serveurs. Ce qui permet de confirmer que les fichiers sont bien les mêmes entre les différents serveurs.

Dans le cas où plusieurs fichiers sont présent, le comptage de tous les fichiers peut se montrer lent et consommateur en ressources.

image

Terminer l’assistant de création de rapport puis le rapport s’affiche via votre navigateur par défaut (le rapport au format HTML est disponible à l’emplacement spécifié à la seconde page de l’assistant).

Créer un rapport de santé (PowerShell)

Il est également possible d’utiliser PowerShell pour la création de rapport de santé dont la génération peut être automatisée à l’aide d’une tâche planifiée.

Voici la commande utilisée :

DfsrAdmin.exe Health New /RgName:$Nom_du_groupe_de_replication
/RefMemName:$MEMBRE_DE_REFERENCE /RepName:"C:\DFSReports\report1.html" /FsCount:true

  • /RgName : Il faut ici préciser le nom du groupe de réplication que l’on souhaite monitorer.
  • /RefMemName : Ce switch permet de déclarer le membre de référence, celui le plus à jour.
  • /RepName : Emplacement de stockage du rapport généré,
  • /FsCount : Permet de spécifier si une comparaison des fichiers ainsi que de leur taille doit être faite ou pas.

Office 365 – Nettoyer un compte

 

Lorsqu’on se contente de supprimer un compte dans Office365, que ca soit via la console Web ou via powershell, il n’est pas réellement totalement détruit et cela peut occasionner des comportements étranges s’ils sont resynchronisés par la suite.

Afin d’y remédier, il est possible de forcer la suppression totale de ce compte via powershell.

Commencer par supprimer de facon classique le compte :
Remove-MsolUser -UserPrincipalName utilisateur@domaine.com

Puis forcer le nettoyage :
 Get-MsolUser -ReturnDeletedUsers -UserPrincipalName utilisateur@domaine.com | Remove-MsolUser RemoveFromRecycleBin -Force

Il est maintenant possible de relancer un DirSync et l’utilisateur sera intégralement resynchronisé comme s’il n’avait jamais existé.