You want to initiate an online defragmentation. This can be useful if you want to expedite the defrag process after deleting a bunch of objects.
184.108.40.206 Using a graphical user interface
220.127.116.11 Using a command-line interface
Create an LDIF file called online_defrag.ldf with the following contents:
dn: changetype: modify replace: DoOnlineDefrag DoOnlineDefrag: 180 -
then run the following command:
> ldifde -v -i -f online_defrag.ldf
18.104.22.168 Using VBScript
' This code kicks off an online defrag to run for up to 180 seconds ' ------ SCRIPT CONFIGURATION ------ strDC = "<DomainControllerName>" ' e.g. dc01 ' ------ END CONFIGURATION --------- set objRootDSE = GetObject("LDAP://" & strDC & "/RootDSE") objRootDSE.Put "DoOnlineDefrag", 180 objRootDSE.SetInfo WScript.Echo "Successfully initiated an online defrag"
New to Windows Server 2003 is the ability to initiate an online defragmentation. By default, the online defrag process runs every 12 hours on each domain controller. This process defrags the Active Directory database (ntds.dit) by combining whitespace generated from deleted objects, but does not reduce the size of the database file.
To kick off an online defrag, simply write the DoOnlineDefrag attribute to the RootDSE with a value equal to the maximum time the defrag process should run (in seconds). You must be a member of one of the administrator groups in the domain controller's domain in order to write to this attribute.
16.10.4 See Also
Recipe 16.12 for performing an offline defrag and MS KB 198793 (The Active Directory Database Garbage Collection Process)