Contact Info

Crumbtrail

ActiveXperts.com » Administration » Scripts » WMI » perl sample

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";
}