Active Directory Troubleshooting
Common Active Directory issues and solutions for domain environments
Table of Contents
Quick reference for diagnosing and resolving Active Directory issues in enterprise environments.
Domain Controller Health
Check DC Status
Quick Health Check
# Check DC services
Get-Service -Name ADWS,KDC,NTDS,DNS
# Check replication status
repadmin /replsummary
# Show all DCs in domain
Get-ADDomainController -Filter *DCDiag - Comprehensive Tests
# Run all diagnostic tests
dcdiag /v
# Test specific DC
dcdiag /s:DC01 /v
# Test DNS
dcdiag /test:DNS
# Test replication
dcdiag /test:ReplicationsCheck FSMO Roles
View FSMO Role Holders
# Show all FSMO roles
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster
# Alternative using netdom
netdom query fsmoTransfer FSMO Roles
# Transfer PDC Emulator role
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" -OperationMasterRole PDCEmulator
# Transfer all roles
Move-ADDirectoryServerOperationMasterRole -Identity "DC02" -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster,DomainNamingMaster,SchemaMasterSeize FSMO Roles (Use only if original DC is permanently offline)
ntdsutil
roles
connections
connect to server DC02
quit
seize rid master
quit
quitReplication Issues
Check Replication Status
View Replication Partners
repadmin /showreplCheck Replication Errors
# Show replication failures
repadmin /showrepl /errorsonly
# Show replication summary
repadmin /replsummary
# Queue status
repadmin /queueForce Replication
Replicate from Specific DC
# Replicate all partitions
repadmin /syncall /AdeP
# Replicate from specific DC
repadmin /replicate DC02 DC01 DC=domain,DC=comTrigger KCC to Generate Topology
repadmin /kccCommon Replication Errors
| Error Code | Issue | Solution |
|---|---|---|
| 8524 | DNS lookup failure | Check DNS configuration |
| 8453 | Replication access denied | Check service account permissions |
| 1722 | RPC server unavailable | Check firewall, RPC service |
| 8606 | Insufficient attributes | Check object permissions |
| 8614 | Replication blocked by policy | Check site link schedule |
Fix Replication
Reset Replication
# Remove replication metadata for dead DC
repadmin /removelingeringobjects DC01.domain.com <GUID> DC=domain,DC=com /advisory_modeUser Account Issues
Account Lockouts
Check Lockout Status
# Check if user is locked out
Get-ADUser -Identity username -Properties LockedOut,LastBadPasswordAttempt
# Unlock account
Unlock-ADAccount -Identity username
# Find lockout source
Get-EventLog -LogName Security -InstanceId 4740 -Newest 10Find Lockout Source
# Check all DCs for lockout events
$DCs = Get-ADDomainController -Filter *
foreach ($DC in $DCs) {
Get-WinEvent -ComputerName $DC.HostName -FilterHashtable @{
LogName='Security'
ID=4740
} -MaxEvents 5 -ErrorAction SilentlyContinue
}Password Issues
Reset Password
# Reset user password
Set-ADAccountPassword -Identity username -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "NewP@ssw0rd!" -Force)
# Force password change at next logon
Set-ADUser -Identity username -ChangePasswordAtLogon $trueCheck Password Policy
# View default password policy
Get-ADDefaultDomainPasswordPolicy
# View fine-grained password policies
Get-ADFineGrainedPasswordPolicy -Filter *
# Check which policy applies to user
Get-ADUserResultantPasswordPolicy -Identity usernameAccount Expiration
Check Account Expiration
# Check if account is expired
Get-ADUser -Identity username -Properties AccountExpirationDate
# Set expiration date
Set-ADAccountExpiration -Identity username -DateTime "12/31/2025"
# Remove expiration
Clear-ADAccountExpiration -Identity usernameGroup Policy Issues
GPUpdate and Refresh
Force Group Policy Update
# Update all policies
gpupdate /force
# Update computer policies only
gpupdate /target:computer /force
# Update user policies only
gpupdate /target:user /forceView Applied Policies
# Show resultant set of policies (RSoP)
gpresult /r
# Generate HTML report
gpresult /h c:\temp\gpresult.html
# Detailed verbose output
gpresult /vGroup Policy Troubleshooting
Check GP Processing
# View GP event logs
Get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational" -MaxEvents 20
# Check specific error events
Get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational" | Where-Object {$_.LevelDisplayName -eq "Error"}Reset Group Policy
# Remove local GP cache
rd /s /q "%WinDir%\System32\GroupPolicy"
rd /s /q "%WinDir%\System32\GroupPolicyUsers"
# Re-register GP engine
gpupdate /forceCheck SYSVOL Replication
# Check SYSVOL replication status
dfsrdiag replicationstate /all
# Check SYSVOL backlog
dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem:DC01 /rmem:DC02DNS Issues in AD
Check AD-Integrated DNS
Verify DNS Zones
# List all DNS zones
Get-DnsServerZone
# Check AD-integrated zone
Get-DnsServerZone -Name "domain.com"Test DNS SRV Records
# Check domain SRV records
nslookup -type=SRV _ldap._tcp.dc._msdcs.domain.com
# Check site-specific SRV records
nslookup -type=SRV _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.domain.com
# Check Kerberos SRV records
nslookup -type=SRV _kerberos._tcp.dc._msdcs.domain.comRe-register DNS Records
# Register DC DNS records
ipconfig /registerdns
# Force netlogon to re-register
net stop netlogon
net start netlogonFix Missing DNS Records
Recreate SRV Records
# Stop netlogon service
net stop netlogon
# Delete netlogon.dns file (will be recreated)
del c:\windows\system32\config\netlogon.dns
# Start netlogon (recreates records)
net start netlogonAuthentication Issues
Kerberos Problems
Check Kerberos Tickets
# List current tickets
klist
# Purge all tickets
klist purge
# Request new ticket
kinit username@DOMAIN.COMTest Kerberos Authentication
# Test with setspn
setspn -Q */computername
# List SPNs for service account
setspn -L serviceaccountFix Time Sync Issues (Kerberos requires time sync within 5 min)
# Check time on DC
w32tm /query /status
# Force time sync
w32tm /resync /rediscover
# Configure time source (on PDC)
w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /reliable:yes /update
net stop w32time
net start w32timeTrust Relationship Failures
Test Trust
# Test trust to domain
Test-ComputerSecureChannel -Verbose
# Repair trust relationship
Test-ComputerSecureChannel -Repair -Credential (Get-Credential)Reset Computer Account
# Reset secure channel
nltest /sc_reset:domain.com
# Reset computer password
netdom resetpwd /s:DC01 /ud:DOMAIN\Administrator /pd:*Computer Account Issues
Check Computer Account Status
View Computer Account
# Get computer object
Get-ADComputer -Identity COMPUTERNAME -Properties *
# Check if account is enabled
Get-ADComputer -Identity COMPUTERNAME -Properties Enabled
# Check password last set
Get-ADComputer -Identity COMPUTERNAME -Properties PasswordLastSetFind Inactive Computers
# Find computers not logged in for 90 days
$Date = (Get-Date).AddDays(-90)
Get-ADComputer -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Select-Object Name,LastLogonDateMove Computer to Different OU
Move-ADObject -Identity "CN=COMPUTER01,OU=OldOU,DC=domain,DC=com" -TargetPath "OU=NewOU,DC=domain,DC=com"Site and Subnets
Check Site Configuration
View Sites
# List all sites
Get-ADReplicationSite -Filter *
# List subnets
Get-ADReplicationSubnet -Filter *
# Show which site a subnet belongs to
Get-ADReplicationSubnet -Filter {Name -eq "192.168.1.0/24"}Create Subnet
New-ADReplicationSubnet -Name "10.0.1.0/24" -Site "Branch-Office" -Location "Branch Office"Check Site Link Costs
View Site Links
Get-ADReplicationSiteLink -Filter *
# View specific site link
Get-ADReplicationSiteLink -Identity "DEFAULTIPSITELINK"Active Directory Database Maintenance
NTDS Database
Check NTDS Database Size
dir c:\windows\ntds\ntds.ditCompact NTDS Database (Requires AD to be offline)
# Reboot into Directory Services Restore Mode (DSRM)
bcdedit /set safeboot dsrepair
shutdown -r -t 0
# After reboot, compact database
ntdsutil
activate instance ntds
files
compact to c:\temp
quit
quit
# If successful, replace old database
copy c:\temp\ntds.dit c:\windows\ntds\ntds.dit
# Reboot normally
bcdedit /deletevalue safeboot
shutdown -r -t 0Tombstone Lifetime
Check Tombstone Lifetime
# View tombstone lifetime (default 180 days)
Get-ADObject -Identity "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=domain,DC=com" -Properties tombstoneLifetimeBackup and Recovery
System State Backup
Backup System State
wbadmin start systemstatebackup -backuptarget:E:Restore System State
# Restore to original location
wbadmin start systemstaterecovery -version:MM/DD/YYYY-HH:MM
# Restore to alternate location
wbadmin start systemstaterecovery -version:MM/DD/YYYY-HH:MM -recoverytarget:D:\RestoreActive Directory Recycle Bin
Enable AD Recycle Bin (Cannot be reversed)
Enable-ADOptionalFeature -Identity "Recycle Bin Feature" -Scope ForestOrConfigurationSet -Target "domain.com"Restore Deleted Object
# Find deleted objects
Get-ADObject -Filter {isDeleted -eq $true} -IncludeDeletedObjects
# Restore specific user
Get-ADObject -Filter {DisplayName -eq "John Doe"} -IncludeDeletedObjects | Restore-ADObjectPerformance Issues
Check AD Performance Counters
Monitor Key Metrics
# LDAP searches per second
Get-Counter "\NTDS\LDAP Searches/sec"
# LDAP binds per second
Get-Counter "\NTDS\LDAP Successful Binds/sec"
# DRA pending replication operations
Get-Counter "\NTDS\DRA Pending Replication Operations"Check Domain Controller Disk Space
Critical Paths to Monitor
C:\Windows\NTDS\- AD databaseC:\Windows\SYSVOL\- SYSVOL share- Event logs
Get-PSDrive C | Select-Object Used,FreeQuick Diagnostic Scripts
One-Liner Health Check
# Quick DC health overview
dcdiag /test:DNS /test:Replications /test:Services /test:ConnectivityFind PDC Emulator
(Get-ADDomain).PDCEmulatorGet All User Lockouts Today
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4740;StartTime=(Get-Date).Date} | Select-Object TimeCreated,@{Name='User';Expression={$_.Properties[0].Value}}Common AD Error Codes
| Error | Description | Common Cause |
|---|---|---|
| 1326 | Logon failure: unknown username or bad password | Wrong credentials |
| 1722 | RPC server is unavailable | Firewall, network issue |
| 5 | Access is denied | Permissions issue |
| 8524 | DSA operation unable to proceed | Replication DNS issue |
| 1311 | No logon servers available | DC unreachable |
| 2453 | No authority could be contacted for authentication | Trust failure |
Essential AD PowerShell Commands
# Import AD module
Import-Module ActiveDirectory
# Get AD info
Get-ADDomain
Get-ADForest
Get-ADDomainController -Filter *
# User operations
Get-ADUser -Identity username -Properties *
Set-ADUser -Identity username -Description "New description"
New-ADUser -Name "John Doe" -SamAccountName jdoe
# Group operations
Get-ADGroup -Identity "Domain Admins" -Properties *
Add-ADGroupMember -Identity "GroupName" -Members username
Get-ADGroupMember -Identity "GroupName"
# Computer operations
Get-ADComputer -Identity COMPUTERNAME
Enable-ADAccount -Identity COMPUTERNAME
Disable-ADAccount -Identity COMPUTERNAME