Win32_PerfRawData_DNS 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_DNS 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_DNS_DNS", "WQL"); foreach my $objItem (in $colItems) { print "AXFRRequestReceived: $objItem->{AXFRRequestReceived}\n"; print "AXFRRequestSent: $objItem->{AXFRRequestSent}\n"; print "AXFRResponseReceived: $objItem->{AXFRResponseReceived}\n"; print "AXFRSuccessReceived: $objItem->{AXFRSuccessReceived}\n"; print "AXFRSuccessSent: $objItem->{AXFRSuccessSent}\n"; print "CachingMemory: $objItem->{CachingMemory}\n"; print "Caption: $objItem->{Caption}\n"; print "DatabaseNodeMemory: $objItem->{DatabaseNodeMemory}\n"; print "Description: $objItem->{Description}\n"; print "DynamicUpdateNoOperation: $objItem->{DynamicUpdateNoOperation}\n"; print "DynamicUpdateNoOperationPersec: $objItem->{DynamicUpdateNoOperationPersec}\n"; print "DynamicUpdateQueued: $objItem->{DynamicUpdateQueued}\n"; print "DynamicUpdateReceived: $objItem->{DynamicUpdateReceived}\n"; print "DynamicUpdateReceivedPersec: $objItem->{DynamicUpdateReceivedPersec}\n"; print "DynamicUpdateRejected: $objItem->{DynamicUpdateRejected}\n"; print "DynamicUpdateTimeOuts: $objItem->{DynamicUpdateTimeOuts}\n"; print "DynamicUpdateWrittentoDatabase: $objItem->{DynamicUpdateWrittentoDatabase}\n"; print "DynamicUpdateWrittentoDatabasePersec: $objItem->{DynamicUpdateWrittentoDatabasePersec}\n"; print "Frequency_Object: $objItem->{Frequency_Object}\n"; print "Frequency_PerfTime: $objItem->{Frequency_PerfTime}\n"; print "Frequency_Sys100NS: $objItem->{Frequency_Sys100NS}\n"; print "IXFRRequestReceived: $objItem->{IXFRRequestReceived}\n"; print "IXFRRequestSent: $objItem->{IXFRRequestSent}\n"; print "IXFRResponseReceived: $objItem->{IXFRResponseReceived}\n"; print "IXFRSuccessReceived: $objItem->{IXFRSuccessReceived}\n"; print "IXFRSuccessSent: $objItem->{IXFRSuccessSent}\n"; print "IXFRTCPSuccessReceived: $objItem->{IXFRTCPSuccessReceived}\n"; print "IXFRUDPSuccessReceived: $objItem->{IXFRUDPSuccessReceived}\n"; print "Name: $objItem->{Name}\n"; print "NbstatMemory: $objItem->{NbstatMemory}\n"; print "NotifyReceived: $objItem->{NotifyReceived}\n"; print "NotifySent: $objItem->{NotifySent}\n"; print "RecordFlowMemory: $objItem->{RecordFlowMemory}\n"; print "RecursiveQueries: $objItem->{RecursiveQueries}\n"; print "RecursiveQueriesPersec: $objItem->{RecursiveQueriesPersec}\n"; print "RecursiveQueryFailure: $objItem->{RecursiveQueryFailure}\n"; print "RecursiveQueryFailurePersec: $objItem->{RecursiveQueryFailurePersec}\n"; print "RecursiveSendTimeOuts: $objItem->{RecursiveSendTimeOuts}\n"; print "RecursiveTimeOutPersec: $objItem->{RecursiveTimeOutPersec}\n"; print "SecureUpdateFailure: $objItem->{SecureUpdateFailure}\n"; print "SecureUpdateReceived: $objItem->{SecureUpdateReceived}\n"; print "SecureUpdateReceivedPersec: $objItem->{SecureUpdateReceivedPersec}\n"; print "TCPMessageMemory: $objItem->{TCPMessageMemory}\n"; print "TCPQueryReceived: $objItem->{TCPQueryReceived}\n"; print "TCPQueryReceivedPersec: $objItem->{TCPQueryReceivedPersec}\n"; print "TCPResponseSent: $objItem->{TCPResponseSent}\n"; print "TCPResponseSentPersec: $objItem->{TCPResponseSentPersec}\n"; print "Timestamp_Object: $objItem->{Timestamp_Object}\n"; print "Timestamp_PerfTime: $objItem->{Timestamp_PerfTime}\n"; print "Timestamp_Sys100NS: $objItem->{Timestamp_Sys100NS}\n"; print "TotalQueryReceived: $objItem->{TotalQueryReceived}\n"; print "TotalQueryReceivedPersec: $objItem->{TotalQueryReceivedPersec}\n"; print "TotalResponseSent: $objItem->{TotalResponseSent}\n"; print "TotalResponseSentPersec: $objItem->{TotalResponseSentPersec}\n"; print "UDPMessageMemory: $objItem->{UDPMessageMemory}\n"; print "UDPQueryReceived: $objItem->{UDPQueryReceived}\n"; print "UDPQueryReceivedPersec: $objItem->{UDPQueryReceivedPersec}\n"; print "UDPResponseSent: $objItem->{UDPResponseSent}\n"; print "UDPResponseSentPersec: $objItem->{UDPResponseSentPersec}\n"; print "WINSLookupReceived: $objItem->{WINSLookupReceived}\n"; print "WINSLookupReceivedPersec: $objItem->{WINSLookupReceivedPersec}\n"; print "WINSResponseSent: $objItem->{WINSResponseSent}\n"; print "WINSResponseSentPersec: $objItem->{WINSResponseSentPersec}\n"; print "WINSReverseLookupReceived: $objItem->{WINSReverseLookupReceived}\n"; print "WINSReverseLookupReceivedPersec: $objItem->{WINSReverseLookupReceivedPersec}\n"; print "WINSReverseResponseSent: $objItem->{WINSReverseResponseSent}\n"; print "WINSReverseResponseSentPersec: $objItem->{WINSReverseResponseSentPersec}\n"; print "ZoneTransferFailure: $objItem->{ZoneTransferFailure}\n"; print "ZoneTransferRequestReceived: $objItem->{ZoneTransferRequestReceived}\n"; print "ZoneTransferSOARequestSent: $objItem->{ZoneTransferSOARequestSent}\n"; print "ZoneTransferSuccess: $objItem->{ZoneTransferSuccess}\n"; print "\n"; print "########\n"; print "\n"; }