S’applique à : Active Directory 2008 – 2008 R2 – 2008 R2 SP1 – 2012 – 2012 R – 2016
Tout d’abord, il faut savoir qu’il existe deux types de défragmentation de la base AD : En-ligne & Hors-ligne
Par défaut, les défragmentations En-ligne se produisent (automatiquement) toutes les 12 heures. Cette défragmentation fait partie du processus Garbage Collection d’Active Directory, décrit dans la KB Microsoft suivante :
The Active Directory Database Garbage Collection Process
Bien que la nature automatique des défragmentations en ligne les rendent commodes, elles ne réduisent en rien la taille du fichier base de données AD (NTDS.Dit) sur un Contrôleur de domaine. Les défragmentations en ligne ne font que récupérer l’espace libre de l’intérieur du fichier. Pour réduire la taille du fichier vous devez effectuer une défragmentation manuelle. Pour ce faire, suivez les instructions suivantes.
Dans l’exemple suivant, la taille de ma base AD (taille du fichier NTDS.dit) est ~2.65 GB :

Nous allons donc procéder à la défragmentation de la base afin de réduire la taille du fichier NTDS.dit, pour ce faire, suivez les instructions suivantes :
Lancez l’Invite de commande (CMD.exe) en tant qu’Administrateur et saisissez la commande suivante pour arrêter le service NTDS (service Windows correspondant à l’instance AD DS : Active Directory Domain Services)
Net Stop NTDS

Plusieurs services Windows dépendent du services NTDS, notamment les service DNS et DFS Replication
Confirmez l’arrêt du service NTDS mais aussi des 4 autres services Windows qui en dépendent, en saisissant Y (comme Yes)

Maintenant que la base AD est arrêtée, nous pouvons effectuer toutes les opérations de maintenance dessus, et notamment l’opération de défragmentation.
Pour ce faire, nous utilisons l’outil NTDSUtil, fourni par défaut sur tout Contrôleur de domaine.
Depuis la même Invite de commande, saisissez les commandes suivantes :
NTDSUtil
Activate Instance NTDS
File
Info
Les informations suivantes sont retournées. Notez la taille du fichier NTDS.dit

Pour défragmenter la base AD, saisissez la commande suivante
Comptact to C:\NTDS.dit
Dans l’exemple suivant, le fichier NTDS.dit (placé par défaut dans C:\Windows\NTDS) sera défragmenté et placé directement dans C:\NTDS.dit
Une fois la défragmentation terminée, vous devrez copiez ce nouveau fichier (défragmenté) dans C:\Windows\NTDS (et écraser l’ancien).

Enfin, saisissez la commande suivante pour copier le nouveau NTDS.dit vers C:\Windows\NTDS et écraser l’ancien base AD
Copy « C:\NTDS.dit\ntds.dit » « C:\Windows\NTDS\ntds.dit »
Confirmez en saisissant Y (comme Yes)
Notez que vous devez également supprimer les anciens fichiers logs (placés par défaut dans C:\Windows\NTDS\*.log), pour ce faire, saisissez la commande suivante:
Del C:\Windows\NTDS\*.log

Enfin, démarrez la base AD et ses services Windows associés en saisissant :
Net Start NTDS

Ouvrez l’explorateur Windows et notez la nouvelle taille de la base AD. Dans l’exemple suivant, la taille du fichier NTDS.dit a été réduite de 2GB.
Lors des derniers audits AD réalisés chez mes clients, la taille de certaines bases AD est passée de 20 GB à 2,5 GB :).

Pour finir, je vous recommande la réalisation de cette opération d’une manière trimestrielle ou semestrielle, cela permettra d’optimiser l’espace disque utilisé sur les partitions systèmes (C:) de vos DCs, mais surtout améliorer les performances en matière d’authentification sur votre annuaire AD.
A bientôt
HK.
¯_(ツ)_/¯