Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Does anyone have links to resources that list perfmon classes that are called by the WMI Query Language? I have some monitoring software that can pull data via WMI but I have to enter a query in WMI Query Language (WQL). Here is an example:

SELECT AvgDiskQueueLength FROM Win32_PerfFormattedData_PerfDisk_logicalDisk WHERE Name="_Total"

So I have an idea of the syntax but I'm trying to figure out the different classes, specifically some of the MS SQL ones. I've tried using the Scriptomatic tool to explore the SQL server WMI info but there isn't anything related to the SQL Server.

The server OS is Windows 2003, running MS SQL Server 2000.

share|improve this question

8 Answers 8

Here's how I do it...

  1. Start -> Run "wbemtest.exe"
  2. Connect, change Namespace to "root\cimv2", Connect
  3. Hit Enum Classes, enter superclass name "Win32_PerfFormattedData", OK

All perfmon WMI classes on that machine should now be displayed. From there you can edit the classes and see what each property is.

share|improve this answer

MSDN has the best list for WMI classes, but it can be difficult to track them down.

The SQL2005 classes are here. However, according to Microsoft, the "WMI Admin Provider is not pre-installed for SQL Server 2000. It needs to be installed separately using the WMI Admin Provider Setup available along with the SQL Server 2000 Setup CD under x86\other\wmi folder." Once installed it appears to use the same classes as SQL2005.

This link is to the Server 2003 WMI reference. It includes the SQL for the WMI ODBC Adapter functions, and should provide you with any nonSQL classes you are interested in.

share|improve this answer

You can use PowerShell to list classes in a namespace.

get-wmiobject -list

will list all classes in the default ("\root\cmiv2") namespace, the -namespace parameter can be used to specify a different namespace.

To get all the performance classes, use either:

get-wmiobject -list | ?{$_.Name -like 'Win32_PerfRaw*'}

for raw data, or:

get-wmiobject -list | ?{$_.Name -like 'Win32_PerfForm*'}

for formmater data. Perfmon shows formatted data (processed by counter type), raw is what the performance counter provider is sending without any further processing.

share|improve this answer

Piggybacking a little on Richard's Powershell answer, I've found the Powershell WMI Explorer to be a great utility for browsing around to find thing within the WMI structure.

share|improve this answer

Probably from the Scripting Guys website:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colClasses = objWMIService.SubclassesOf()

For Each objClass in colClasses
    For Each objClassQualifier In objClass.Qualifiers_
        If LCase(objClassQualifier.Name) = "dynamic" Then
            WScript.Echo objClass.Path_.Class   & ": " & _
                         objClassQualifier.Name & "="  & _
                         objClassQualifier.Value
        End If
    Next
Next

I use this script to check or troubleshoot what classes are available on a particular computer.

share|improve this answer

Scriptomatic is a great little tool from the Scripting Guys, that works as a WMI object browser as well as outputting a basic script in VB/Perl/Python that queries that object. It's a great starting point.

share|improve this answer

Start here, on MSDN. Note the various classes on the left. Click whichever one you need for more detail. Within Perfmon itself you will often find more detailed descriptions of how to interpret various class objects.

share|improve this answer

http://www.solarwinds.com/products/freetools/wmi_monitor/

Works well, and it's free.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.