Windows
The %Systemroot%\ntds\ folder is stored in C:\Windows\NTDS by default on Windows Server, hosting Active Directory's core database files (NTDS.dit) and transaction logs that keep domain controllers synchronized. While this path can be customized during setup, changing it requires careful planning to avoid breaking AD services.
The NTDS directory isn't just a storage location—it's the backbone of your Active Directory environment. 🔥 Inside, you'll find the NTDS.dit file (the actual database) and log files that track every change to your domain, from user accounts to group policies.
This structure relies on Microsoft's Extensible Storage Engine (ESE), which ensures data integrity even during system crashes. The path's consistency across domain controllers is what enables seamless replication, making your entire directory service resilient to hardware failures.
What most admins don't realize is how fragile this system can be if the path isn't properly maintained. A misconfigured NTDS location can lead to Active Directory corruption during backups or restores, since tools like ntdsutil and Dismount-DADatabase rely on finding these files in their expected location.
Always verify the path using %SystemRoot%\NTDS in Command Prompt before making any changes—this simple check can save hours of troubleshooting later.
💡 In This Article
- How Windows Server Stores Active Directory Data in NTDS
- Configuring or Verifying %Systemroot%\NTDS Path in Windows Server
How windows server stores active directory data in NTDS
The NTDS directory leverages Microsoft's Extensible Storage Engine (ESE), a transactional database technology similar to what powers Microsoft Exchange. The core file, NTDS.dit, weighs between 100MB and 2GB depending on domain size, storing every object (users, groups, OUs) as binary data with hierarchical relationships.
This engine uses Write-Ahead Logging, where every change is first recorded in transaction logs before applying to NTDS.dit, ensuring atomicity even during power failures.
Transaction logs—named EDB.log—play a critical role in replication. Each domain controller maintains its own log files (typically 9 files max per cycle) that get archived during log wraps. When replication occurs, these logs are transferred to partners using Multi-Master Replication, where changes are applied in sequence.
The SYSVOL folder (stored separately in C:\Windows\SYSVOL\sysvol\) integrates here by syncing Group Policy templates and scripts, completing the AD data ecosystem.
Path consistency is non-negotiable because AD tools like ntdsutil hardcode path references. If you move NTDS.dit without updating the registry key HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Database Search Path, the system will fail to mount the database.
This is why Microsoft recommends against custom paths—95% of AD corruption cases stem from path misconfigurations during backups or restores.
Here's what happens under the hood during a replication cycle:
- Log Generation: Changes are written to EDB.log files in C:\Windows\NTDS\
- Log Replication: Files are transferred via RPC over TCP 445 to partner DCs
- Database Update: NTDS.dit is modified only after all logs are applied
- SYSVOL Sync: Related policy changes propagate through FRS/DFS-R
The NTDS structure also includes tombstone records—deleted objects marked for cleanup that persist for 180 days (configurable via tombstoneLifetime attribute). These records are critical for proper garbage collection during Metadata Cleanup operations.
When you run repadmin /removelingeringobjects, the system scans NTDS.dit for these records to safely purge them from replication partners.
What's often overlooked is how disk performance impacts NTDS operations. The ESE engine performs best on SSDs with 10,000+ IOPS for the NTDS volume, as transaction logs generate high I/O bursts during peak replication.
A slow disk can cause event ID 13566 errors, where log files exceed their 10GB maximum size, triggering automatic database dismounts.
Understanding this structure helps explain why backup strategies must include both NTDS.dit and log files. A proper backup captures:
- NTDS.dit (current database state)
- All active EDB*.log files (unapplied transactions)
- SYSVOL contents (for policy recovery)
