16.10. Performing an Online Defrag Manually

Tip

This recipe must be run against a Windows Server 2003 domain controller.

Problem

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.

Solution

Using a graphical user interface

  1. Open LDP.

  2. From the menu, select Connection Connect.

  3. For Server, enter the name of the target domain controller.

  4. For Port, enter 389.

  5. Click OK.

  6. From the menu, select Connection Bind.

  7. Enter credentials of a user from one of the administrator groups.

  8. Click OK.

  9. From the menu, select Browse Modify.

  10. Leave the Dn blank.

  11. For Attribute, enter DoOnlineDefrag.

  12. For Values, enter 180.

  13. For Operation, select Add.

  14. Click Enter.

  15. Click Run.

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

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"

Discussion

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. ...

Get Active Directory Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.