Win32_PerfRawData_DirectoryServices perl sample code
The foundations for Manageability in Windows is Windows Management Instrumentation (WMI; formerly WBEM) and WMI extensions for Windows Driver Model (WDM).
ActiveXperts Network Monitor provides the ability to build monitor check routines based on WMI. ActiveXperts has collected more than a hundred WMI samples. You can use these samples as a base for new check routines you can write yourself. The Win32_PerfRawData_DirectoryServices WMI class can be used in ActiveXperts Network Monitor to monitor your servers.
Sample Code
use Win32::OLE('in'); my $computer = "."; my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n"; my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_PerfRawData_DirectoryServices_DirectoryServices", "WQL"); foreach my $objItem (in $colItems) { print "ABANRPersec: $objItem->{ABANRPersec}\n"; print "ABBrowsesPersec: $objItem->{ABBrowsesPersec}\n"; print "ABClientSessions: $objItem->{ABClientSessions}\n"; print "ABMatchesPersec: $objItem->{ABMatchesPersec}\n"; print "ABPropertyReadsPersec: $objItem->{ABPropertyReadsPersec}\n"; print "ABProxyLookupsPersec: $objItem->{ABProxyLookupsPersec}\n"; print "ABSearchesPersec: $objItem->{ABSearchesPersec}\n"; print "ATQEstimatedQueueDelay: $objItem->{ATQEstimatedQueueDelay}\n"; print "ATQOutstandingQueuedRequests: $objItem->{ATQOutstandingQueuedRequests}\n"; print "ATQRequestLatency: $objItem->{ATQRequestLatency}\n"; print "ATQThreadsLDAP: $objItem->{ATQThreadsLDAP}\n"; print "ATQThreadsOther: $objItem->{ATQThreadsOther}\n"; print "ATQThreadsTotal: $objItem->{ATQThreadsTotal}\n"; print "BasesearchesPersec: $objItem->{BasesearchesPersec}\n"; print "Caption: $objItem->{Caption}\n"; print "DatabaseaddsPersec: $objItem->{DatabaseaddsPersec}\n"; print "DatabasedeletesPersec: $objItem->{DatabasedeletesPersec}\n"; print "DatabasemodifysPersec: $objItem->{DatabasemodifysPersec}\n"; print "Description: $objItem->{Description}\n"; print "DigestBindsPersec: $objItem->{DigestBindsPersec}\n"; print "DRAHighestUSNCommittedHighpart: $objItem->{DRAHighestUSNCommittedHighpart}\n"; print "DRAHighestUSNCommittedLowpart: $objItem->{DRAHighestUSNCommittedLowpart}\n"; print "DRAHighestUSNIssuedHighpart: $objItem->{DRAHighestUSNIssuedHighpart}\n"; print "DRAHighestUSNIssuedLowpart: $objItem->{DRAHighestUSNIssuedLowpart}\n"; print "DRAInboundBytesCompressedBetweenSitesAfterCompressionPersec: $objItem->{DRAInboundBytesCompressedBetweenSitesAfterCompressionPersec}\n"; print "DRAInboundBytesCompressedBetweenSitesAfterCompressionSinceBoot: $objItem->{DRAInboundBytesCompressedBetweenSitesAfterCompressionSinceBoot}\n"; print "DRAInboundBytesCompressedBetweenSitesBeforeCompressionPersec: $objItem->{DRAInboundBytesCompressedBetweenSitesBeforeCompressionPersec}\n"; print "DRAInboundBytesCompressedBetweenSitesBeforeCompressionSinceBoot: $objItem->{DRAInboundBytesCompressedBetweenSitesBeforeCompressionSinceBoot}\n"; print "DRAInboundBytesNotCompressedWithinSitePersec: $objItem->{DRAInboundBytesNotCompressedWithinSitePersec}\n"; print "DRAInboundBytesNotCompressedWithinSiteSinceBoot: $objItem->{DRAInboundBytesNotCompressedWithinSiteSinceBoot}\n"; print "DRAInboundBytesTotalPersec: $objItem->{DRAInboundBytesTotalPersec}\n"; print "DRAInboundBytesTotalSinceBoot: $objItem->{DRAInboundBytesTotalSinceBoot}\n"; print "DRAInboundFullSyncObjectsRemaining: $objItem->{DRAInboundFullSyncObjectsRemaining}\n"; print "DRAInboundLinkValueUpdatesRemaininginPacket: $objItem->{DRAInboundLinkValueUpdatesRemaininginPacket}\n"; print "DRAInboundObjectsAppliedPersec: $objItem->{DRAInboundObjectsAppliedPersec}\n"; print "DRAInboundObjectsFilteredPersec: $objItem->{DRAInboundObjectsFilteredPersec}\n"; print "DRAInboundObjectsPersec: $objItem->{DRAInboundObjectsPersec}\n"; print "DRAInboundObjectUpdatesRemaininginPacket: $objItem->{DRAInboundObjectUpdatesRemaininginPacket}\n"; print "DRAInboundPropertiesAppliedPersec: $objItem->{DRAInboundPropertiesAppliedPersec}\n"; print "DRAInboundPropertiesFilteredPersec: $objItem->{DRAInboundPropertiesFilteredPersec}\n"; print "DRAInboundPropertiesTotalPersec: $objItem->{DRAInboundPropertiesTotalPersec}\n"; print "DRAInboundTotalUpdatesRemaininginPacket: $objItem->{DRAInboundTotalUpdatesRemaininginPacket}\n"; print "DRAInboundValuesDNsonlyPersec: $objItem->{DRAInboundValuesDNsonlyPersec}\n"; print "DRAInboundValuesTotalPersec: $objItem->{DRAInboundValuesTotalPersec}\n"; print "DRAOutboundBytesCompressedBetweenSitesAfterCompressionPersec: $objItem->{DRAOutboundBytesCompressedBetweenSitesAfterCompressionPersec}\n"; print "DRAOutboundBytesCompressedBetweenSitesAfterCompressionSinceBoot: $objItem->{DRAOutboundBytesCompressedBetweenSitesAfterCompressionSinceBoot}\n"; print "DRAOutboundBytesCompressedBetweenSitesBeforeCompressionPersec: $objItem->{DRAOutboundBytesCompressedBetweenSitesBeforeCompressionPersec}\n"; print "DRAOutboundBytesCompressedBetweenSitesBeforeCompressionSinceBoot: $objItem->{DRAOutboundBytesCompressedBetweenSitesBeforeCompressionSinceBoot}\n"; print "DRAOutboundBytesNotCompressedWithinSitePersec: $objItem->{DRAOutboundBytesNotCompressedWithinSitePersec}\n"; print "DRAOutboundBytesNotCompressedWithinSiteSinceBoot: $objItem->{DRAOutboundBytesNotCompressedWithinSiteSinceBoot}\n"; print "DRAOutboundBytesTotalPersec: $objItem->{DRAOutboundBytesTotalPersec}\n"; print "DRAOutboundBytesTotalSinceBoot: $objItem->{DRAOutboundBytesTotalSinceBoot}\n"; print "DRAOutboundObjectsFilteredPersec: $objItem->{DRAOutboundObjectsFilteredPersec}\n"; print "DRAOutboundObjectsPersec: $objItem->{DRAOutboundObjectsPersec}\n"; print "DRAOutboundPropertiesPersec: $objItem->{DRAOutboundPropertiesPersec}\n"; print "DRAOutboundValuesDNsonlyPersec: $objItem->{DRAOutboundValuesDNsonlyPersec}\n"; print "DRAOutboundValuesTotalPersec: $objItem->{DRAOutboundValuesTotalPersec}\n"; print "DRAPendingReplicationOperations: $objItem->{DRAPendingReplicationOperations}\n"; print "DRAPendingReplicationSynchronizations: $objItem->{DRAPendingReplicationSynchronizations}\n"; print "DRASyncFailuresonSchemaMismatch: $objItem->{DRASyncFailuresonSchemaMismatch}\n"; print "DRASyncRequestsMade: $objItem->{DRASyncRequestsMade}\n"; print "DRASyncRequestsSuccessful: $objItem->{DRASyncRequestsSuccessful}\n"; print "DRAThreadsGettingNCChanges: $objItem->{DRAThreadsGettingNCChanges}\n"; print "DRAThreadsGettingNCChangesHoldingSemaphore: $objItem->{DRAThreadsGettingNCChangesHoldingSemaphore}\n"; print "DSClientBindsPersec: $objItem->{DSClientBindsPersec}\n"; print "DSClientNameTranslationsPersec: $objItem->{DSClientNameTranslationsPersec}\n"; print "DSDirectoryReadsPersec: $objItem->{DSDirectoryReadsPersec}\n"; print "DSDirectorySearchesPersec: $objItem->{DSDirectorySearchesPersec}\n"; print "DSDirectoryWritesPersec: $objItem->{DSDirectoryWritesPersec}\n"; print "DSMonitorListSize: $objItem->{DSMonitorListSize}\n"; print "DSNameCachehitrate: $objItem->{DSNameCachehitrate}\n"; print "DSNameCachehitrate_Base: $objItem->{DSNameCachehitrate_Base}\n"; print "DSNotifyQueueSize: $objItem->{DSNotifyQueueSize}\n"; print "DSPercentReadsfromDRA: $objItem->{DSPercentReadsfromDRA}\n"; print "DSPercentReadsfromDRA_Base: $objItem->{DSPercentReadsfromDRA_Base}\n"; print "DSPercentReadsfromKCC: $objItem->{DSPercentReadsfromKCC}\n"; print "DSPercentReadsfromKCC_Base: $objItem->{DSPercentReadsfromKCC_Base}\n"; print "DSPercentReadsfromLSA: $objItem->{DSPercentReadsfromLSA}\n"; print "DSPercentReadsfromLSA_Base: $objItem->{DSPercentReadsfromLSA_Base}\n"; print "DSPercentReadsfromNSPI: $objItem->{DSPercentReadsfromNSPI}\n"; print "DSPercentReadsfromNSPI_Base: $objItem->{DSPercentReadsfromNSPI_Base}\n"; print "DSPercentReadsfromNTDSAPI: $objItem->{DSPercentReadsfromNTDSAPI}\n"; print "DSPercentReadsfromNTDSAPI_Base: $objItem->{DSPercentReadsfromNTDSAPI_Base}\n"; print "DSPercentReadsfromSAM: $objItem->{DSPercentReadsfromSAM}\n"; print "DSPercentReadsfromSAM_Base: $objItem->{DSPercentReadsfromSAM_Base}\n"; print "DSPercentReadsOther: $objItem->{DSPercentReadsOther}\n"; print "DSPercentReadsOther_Base: $objItem->{DSPercentReadsOther_Base}\n"; print "DSPercentSearchesfromDRA: $objItem->{DSPercentSearchesfromDRA}\n"; print "DSPercentSearchesfromDRA_Base: $objItem->{DSPercentSearchesfromDRA_Base}\n"; print "DSPercentSearchesfromKCC: $objItem->{DSPercentSearchesfromKCC}\n"; print "DSPercentSearchesfromKCC_Base: $objItem->{DSPercentSearchesfromKCC_Base}\n"; print "DSPercentSearchesfromLDAP: $objItem->{DSPercentSearchesfromLDAP}\n"; print "DSPercentSearchesfromLDAP_Base: $objItem->{DSPercentSearchesfromLDAP_Base}\n"; print "DSPercentSearchesfromLSA: $objItem->{DSPercentSearchesfromLSA}\n"; print "DSPercentSearchesfromLSA_Base: $objItem->{DSPercentSearchesfromLSA_Base}\n"; print "DSPercentSearchesfromNSPI: $objItem->{DSPercentSearchesfromNSPI}\n"; print "DSPercentSearchesfromNSPI_Base: $objItem->{DSPercentSearchesfromNSPI_Base}\n"; print "DSPercentSearchesfromNTDSAPI: $objItem->{DSPercentSearchesfromNTDSAPI}\n"; print "DSPercentSearchesfromNTDSAPI_Base: $objItem->{DSPercentSearchesfromNTDSAPI_Base}\n"; print "DSPercentSearchesfromSAM: $objItem->{DSPercentSearchesfromSAM}\n"; print "DSPercentSearchesfromSAM_Base: $objItem->{DSPercentSearchesfromSAM_Base}\n"; print "DSPercentSearchesOther: $objItem->{DSPercentSearchesOther}\n"; print "DSPercentSearchesOther_Base: $objItem->{DSPercentSearchesOther_Base}\n"; print "DSPercentWritesfromDRA: $objItem->{DSPercentWritesfromDRA}\n"; print "DSPercentWritesfromDRA_Base: $objItem->{DSPercentWritesfromDRA_Base}\n"; print "DSPercentWritesfromKCC: $objItem->{DSPercentWritesfromKCC}\n"; print "DSPercentWritesfromKCC_Base: $objItem->{DSPercentWritesfromKCC_Base}\n"; print "DSPercentWritesfromLDAP: $objItem->{DSPercentWritesfromLDAP}\n"; print "DSPercentWritesfromLDAP_Base: $objItem->{DSPercentWritesfromLDAP_Base}\n"; print "DSPercentWritesfromLSA: $objItem->{DSPercentWritesfromLSA}\n"; print "DSPercentWritesfromLSA_Base: $objItem->{DSPercentWritesfromLSA_Base}\n"; print "DSPercentWritesfromNSPI: $objItem->{DSPercentWritesfromNSPI}\n"; print "DSPercentWritesfromNSPI_Base: $objItem->{DSPercentWritesfromNSPI_Base}\n"; print "DSPercentWritesfromNTDSAPI: $objItem->{DSPercentWritesfromNTDSAPI}\n"; print "DSPercentWritesfromNTDSAPI_Base: $objItem->{DSPercentWritesfromNTDSAPI_Base}\n"; print "DSPercentWritesfromSAM: $objItem->{DSPercentWritesfromSAM}\n"; print "DSPercentWritesfromSAM_Base: $objItem->{DSPercentWritesfromSAM_Base}\n"; print "DSPercentWritesOther: $objItem->{DSPercentWritesOther}\n"; print "DSPercentWritesOther_Base: $objItem->{DSPercentWritesOther_Base}\n"; print "DSSearchsuboperationsPersec: $objItem->{DSSearchsuboperationsPersec}\n"; print "DSSecurityDescriptorPropagationsEvents: $objItem->{DSSecurityDescriptorPropagationsEvents}\n"; print "DSSecurityDescriptorPropagatorAverageExclusionTime: $objItem->{DSSecurityDescriptorPropagatorAverageExclusionTime}\n"; print "DSSecurityDescriptorPropagatorRuntimeQueue: $objItem->{DSSecurityDescriptorPropagatorRuntimeQueue}\n"; print "DSSecurityDescriptorsuboperationsPersec: $objItem->{DSSecurityDescriptorsuboperationsPersec}\n"; print "DSServerBindsPersec: $objItem->{DSServerBindsPersec}\n"; print "DSServerNameTranslationsPersec: $objItem->{DSServerNameTranslationsPersec}\n"; print "DSThreadsinUse: $objItem->{DSThreadsinUse}\n"; print "ExternalBindsPersec: $objItem->{ExternalBindsPersec}\n"; print "FastBindsPersec: $objItem->{FastBindsPersec}\n"; print "Frequency_Object: $objItem->{Frequency_Object}\n"; print "Frequency_PerfTime: $objItem->{Frequency_PerfTime}\n"; print "Frequency_Sys100NS: $objItem->{Frequency_Sys100NS}\n"; print "LDAPActiveThreads: $objItem->{LDAPActiveThreads}\n"; print "LDAPBindTime: $objItem->{LDAPBindTime}\n"; print "LDAPClientSessions: $objItem->{LDAPClientSessions}\n"; print "LDAPClosedConnectionsPersec: $objItem->{LDAPClosedConnectionsPersec}\n"; print "LDAPNewConnectionsPersec: $objItem->{LDAPNewConnectionsPersec}\n"; print "LDAPNewSSLConnectionsPersec: $objItem->{LDAPNewSSLConnectionsPersec}\n"; print "LDAPSearchesPersec: $objItem->{LDAPSearchesPersec}\n"; print "LDAPSuccessfulBindsPersec: $objItem->{LDAPSuccessfulBindsPersec}\n"; print "LDAPUDPoperationsPersec: $objItem->{LDAPUDPoperationsPersec}\n"; print "LDAPWritesPersec: $objItem->{LDAPWritesPersec}\n"; print "LinkValuesCleanedPersec: $objItem->{LinkValuesCleanedPersec}\n"; print "Name: $objItem->{Name}\n"; print "NegotiatedBindsPersec: $objItem->{NegotiatedBindsPersec}\n"; print "NTLMBindsPersec: $objItem->{NTLMBindsPersec}\n"; print "OnelevelsearchesPersec: $objItem->{OnelevelsearchesPersec}\n"; print "PhantomsCleanedPersec: $objItem->{PhantomsCleanedPersec}\n"; print "PhantomsVisitedPersec: $objItem->{PhantomsVisitedPersec}\n"; print "SAMAccountGroupEvaluationLatency: $objItem->{SAMAccountGroupEvaluationLatency}\n"; print "SAMDisplayInformationQueriesPersec: $objItem->{SAMDisplayInformationQueriesPersec}\n"; print "SAMDomainLocalGroupMembershipEvaluationsPersec: $objItem->{SAMDomainLocalGroupMembershipEvaluationsPersec}\n"; print "SAMEnumerationsPersec: $objItem->{SAMEnumerationsPersec}\n"; print "SAMGCEvaluationsPersec: $objItem->{SAMGCEvaluationsPersec}\n"; print "SAMGlobalGroupMembershipEvaluationsPersec: $objItem->{SAMGlobalGroupMembershipEvaluationsPersec}\n"; print "SAMMachineCreationAttemptsPersec: $objItem->{SAMMachineCreationAttemptsPersec}\n"; print "SAMMembershipChangesPersec: $objItem->{SAMMembershipChangesPersec}\n"; print "SAMNonTransitiveMembershipEvaluationsPersec: $objItem->{SAMNonTransitiveMembershipEvaluationsPersec}\n"; print "SAMPasswordChangesPersec: $objItem->{SAMPasswordChangesPersec}\n"; print "SAMResourceGroupEvaluationLatency: $objItem->{SAMResourceGroupEvaluationLatency}\n"; print "SAMSuccessfulComputerCreationsPersecIncludesallrequests: $objItem->{SAMSuccessfulComputerCreationsPersecIncludesallrequests}\n"; print "SAMSuccessfulUserCreationsPersec: $objItem->{SAMSuccessfulUserCreationsPersec}\n"; print "SAMTransitiveMembershipEvaluationsPersec: $objItem->{SAMTransitiveMembershipEvaluationsPersec}\n"; print "SAMUniversalGroupMembershipEvaluationsPersec: $objItem->{SAMUniversalGroupMembershipEvaluationsPersec}\n"; print "SAMUserCreationAttemptsPersec: $objItem->{SAMUserCreationAttemptsPersec}\n"; print "SimpleBindsPersec: $objItem->{SimpleBindsPersec}\n"; print "SubtreesearchesPersec: $objItem->{SubtreesearchesPersec}\n"; print "Timestamp_Object: $objItem->{Timestamp_Object}\n"; print "Timestamp_PerfTime: $objItem->{Timestamp_PerfTime}\n"; print "Timestamp_Sys100NS: $objItem->{Timestamp_Sys100NS}\n"; print "TombstonesGarbageCollectedPersec: $objItem->{TombstonesGarbageCollectedPersec}\n"; print "TombstonesVisitedPersec: $objItem->{TombstonesVisitedPersec}\n"; print "\n"; print "########\n"; print "\n"; }