Contact Info

Crumbtrail

ActiveXperts.com » Administration » VBScript Collection » Monitoring » Active Directory

Scripts to monitor Active Directory

Configuring Trust Relationship Properties
Enumerating 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