Recipe 16.11 Determining How Much Whitespace Is in the DIT

16.11.1 Problem

You want to find the amount of whitespace in your DIT. A lot of whitespace in the DIT may mean that you could regain enough space on the disk to warrant performing an offline defrag.

16.11.2 Solution Using a graphical user interface
  1. Run regedit.exe from the command line or Start Run.

  2. Expand HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services NTDS Diagnostics.

  3. In the right pane, double-click on 6 Garbage Collection.

  4. For Value data, enter 1.

  5. Click OK. Using a command-line interface
> reg add HKLM\System\CurrentControlSet\Services\NTDS\Diagnostics /v "6 Garbage[RETURN] 
Collection" /t REG_DWORD /d 1 Using VBScript
' This code enables logging of DIT whitespace information in the event log.
strDCName = "<DomainControllerName>"  ' e.g. dc1
' ------ END CONFIGURATION ---------

const HKLM = &H80000002
strNTDSReg = "SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics"
set objReg = GetObject("winmgmts:\\" & strDCName & "\root\default:StdRegProv")
objReg.SetDWORDValue HKLM, strNTDSReg, "6 Garbage Collection", 1
WScript.Echo "Garbage Collection logging set to 1"

16.11.3 Discussion

By setting the 6 Garbage Collection diagnostics logging option, event 1646 will get generated after the garbage collection process runs. Here is an example 1646 event:

Event Type:        Information
Event Source:        NTDS Database
Event Category:        Garbage Collection 
Event ID:        1646
Date:                5/25/2003
Time:                9:52:46 AM
Computer:        DC1
Internal event: The Active Directory database has the following amount of free hard 
disk space remaining. 
Free hard disk space (megabytes):
Total allocated hard disk space (megabytes):

This shows that domain controller dc1 has a 1 GB DIT file with 100 MB that is free (i.e., whitespace).

16.11.4 See Also

Recipe 16.12 for performing an offline defrag

    Chapter 3. Domain Controllers, Global Catalogs, and FSMOs
    Chapter 6. Users
    Appendix A. Tool List