|
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.
Open LDP.
From the menu, select Connection Connect.
For Server, enter the name of the target domain controller.
For Port, enter 389.
Click OK.
From the menu, select Connection Bind.
Enter credentials of a user from one of the administrator groups.
Click OK.
From the menu, select Browse Modify.
Leave the Dn blank.
For Attribute, enter DoOnlineDefrag.
For Values, enter 180.
For Operation, select Add.
Click Enter.
Click Run.
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
' 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.
Recipe 16.12 for performing an offline defrag and MS KB 198793 (The Active Directory Database Garbage Collection Process)