Scripts to monitor Active Directory
Configuring Trust Relationship PropertiesEnumerating Active Directory Database Replication Partners
Enumerating Domain Information for Trust Partners
Enumerating Trust Relationships
Installing Active Directory Database Performance Counters
Monitoring Active Directory Database Performance
Monitoring Active Directory Replication
Monitoring Domain Controller Performance
Monitoring FRS Replication
Configuring Trust Relationship Properties
Configures trust relationship refresh and validation properties.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\MicrosoftActiveDirectory") Set colTrustList = objWMIService.ExecQuery _ ("Select * from Microsoft_TrustProvider") For Each objTrust in colTrustList objTrust.TrustListLifetime = 25 objTrust.TrustStatusLifetime = 10 objTrust.TrustCheckLevel = 1 objTrust.Put_ Next
Enumerating Active Directory Database Replication Partners
Returns a list of Active Directory replication partners for a domain controller.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\MicrosoftActiveDirectory") Set colReplicationOperations = objWMIService.ExecQuery _ ("Select * from MSAD_ReplNeighbor") For each objReplicationJob in colReplicationOperations Wscript.Echo objReplicationJob.Domain Wscript.Echo objReplicationJob.NamingContextDN Wscript.Echo objReplicationJob.SourceDsaDN Wscript.Echo objReplicationJob.LastSyncResult Wscript.Echo objReplicationJob.NumConsecutiveSyncFailures Next
Enumerating Domain Information for Trust Partners
Returns local domain information.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\MicrosoftACtiveDirectory") Set colDomainInfo = objWMIService.ExecQuery _ ("Select * from Microsoft_LocalDOmainInfo") For each objDomain in colDomainInfo Wscript.Echo objDomain.DNSName Wscript.Echo objDomain.FlatName Wscript.Echo objDomain.SID Wscript.Echo objDomain.TreeName Wscript.Echo objDomain.DCName Next
Enumerating Trust Relationships
Enumerates trust relationships.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\MicrosoftActiveDirectory") Set colTrustList = objWMIService.ExecQuery _ ("Select * from Microsoft_DomainTrustStatus") For each objTrust in colTrustList Wscript.Echo objTrust.TrustedDomain Wscript.Echo objTrust.TrustDirection Wscript.Echo objTrust.TrustType Wscript.Echo objTrust.TrustAttributes Wscript.Echo objTrust.TrustedDCName Wscript.Echo objTrust.TrustStatus Wscript.Echo objTrust.TrustIsOK Next
Installing Active Directory Database Performance Counters
Installs the Active Database performance counters on a domain controller.
Set WshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("Shell.Application") objFSO.CreateFolder ("C:\Performance") Set objCopyFile = objFSO.GetFile("C:\windows\system32\esentprf.dll ") objCopyFile.Copy ("C:\performance\esentprf.dll ") WshShell.RegWrite _ "HKLM\System\CurrentControlSet\Services\Esent\Performance\Open", _ "OpenPerformanceData", "REG_SZ" WshShell.RegWrite _ "HKLM\System\CurrentControlSet\Services\Esent\Performance\Collect", _ "CollectPerformanceData", "REG_SZ" WshShell.RegWrite _ "HKLM\System\CurrentControlSet\Services\Esent\Performance\Close", _ "ClosePerformanceData", "REG_SZ" WshShell.RegWrite _ "HKLM\System\CurrentControlSet\Services\Esent\Performance\Library", _ "C:\Performance\Esentprf.dll", "REG_SZ" strCommandText = "%comspec% /c lodctr.exe c:\windows\system32\esentprf.ini" WshShell.Run strCommandText
Monitoring Active Directory Database Performance
Uses cooked performance counters to monitor the performance of the Active Directory database on a domain controller.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDatabases = objWMIService.ExecQuery _ ("Select * from Win32_PerfFormattedData_Esent_Database " _ & "Where Name = 'NT Directory'") For Each objADDatabase in colDatabases Wscript.Echo objADDatabase.DatabaseCachePercentHit Next
Monitoring Active Directory Replication
Returns a list of pending replication jobs on a domain controller.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\MicrosoftActiveDirectory") Set colReplicationOperations = objWMIService.ExecQuery _ ("Select * from MSAD_ReplPendingOp") If colReplicationOperations.Count = 0 Then Wscript.Echo "There are no replication jobs pending." Wscript.Quit Else For each objReplicationJob in colReplicationOperations Wscript.Echo objReplicationJob.SerialNumber Wscript.Echo objReplicationJob.TimeEnqueued Wscript.Echo objReplicationJob.DsaDN Wscript.Echo objReplicationJob.DsaAddress Wscript.Echo objReplicationJob.NamingContextDn Next End If
Monitoring Domain Controller Performance
Monitors the performance of an Active Directory domain controller.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDatabases = objWMIService.ExecQuery _ ("Select * from Win32_PerfFormattedData_NTDS_NTDS") For Each objADDatabase in colDatabases Wscript.Echo objADDatabase.DSThreadsInUse Wscript.Echo objADDatabase.LDAPBindTime Wscript.Echo objADDatabase.LDAPClientSessions Next
Monitoring FRS Replication
Uses cooked performance counters to monitor File Replication Service performance on a domain controller.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colFRSSet = objWMIService.ExecQuery _ ("Select * from Win32_PerfFormattedData_FileReplicaConn_FileReplicaConn") For Each objFRSInstance in colFRSSet Wscript.Echo objFRSInstance.RemoteChangeOrdersReceived Wscript.Echo objFRSInstance.RemoteChangeOrdersSent Wscript.Echo objFRSInstance.PacketsSent Next