I want to use the Win32_PerfFormattedData_MSSQLSERVER_* WMI classes but they are missing from my Windows XP machine. My environment is: Windows XP (x86) SP3 (I had the same problem with SP2) SQL Server 2005 (x86) Developer Edition SP2 wbemtest connected to namespace root\cimv2 enumerating classes beginning with win32_perf, shows none of the Win32_PerfFormattedData_MSSQLSERVER_* classes exist, all of the Win32_PerfRawData_MSSQLSERVER_* classes exist and Win32_PerfFormattedData_msftesql_* exist. The following didn't fix the problem (I also tried reinstalling SQL Server). wmiadap /f net stop winmgmt net start winmgmt and winmgmt /clearadap winmgmt /resyncperf After running these commands C:\WINDOWS\system32\wbem\Logs \wbemcore.log shows lots of Win32_PerfFormattedData_* and Win32_PerfRawData_* classes being registered but none of the Win32_PerfRawData_MSSQLSERVER_* classes. wmiadap.log (Wed Jun 18 11:04:42 2008.1170406) : Constructing the MSSQLSERVER performance library wrapper. (Wed Jun 18 11:04:42 2008.1170406) : CAdapPerfLib::BeginProcessingStatus()... (Wed Jun 18 11:04:42 2008.1170421) : ** MSSQLSERVER Library Loaded. (Wed Jun 18 11:04:42 2008.1170421) : Worker thread for MSSQLSERVER is 0xc34 (Wed Jun 18 11:04:42 2008.1170421) : Open called for MSSQLSERVER returned 0 (Wed Jun 18 11:04:42 2008.1170421) : Collect called for MSSQLSERVER returned 0 (Wed Jun 18 11:04:42 2008.1170421) : Collect called for MSSQLSERVER returned 0 (Wed Jun 18 11:04:42 2008.1170421) : Close called for MSSQLSERVER returned 0 (Wed Jun 18 11:04:42 2008.1170421) : Thread 0xc34 for MSSQLSERVER is terminating (Wed Jun 18 11:04:42 2008.1170421) : CAdapPerfLib::EndProcessingStatus()... (Wed Jun 18 11:04:42 2008.1170421) : Destructing the MSSQLSERVER performance library wrapper. (Wed Jun 18 11:04:42 2008.1170421) : Library for Service MSSQLSERVER Freed. (Wed Jun 18 11:04:42 2008.1170421) : CPerfLibSchema::Initialize for MSSQLSERVER hr 00000000 (Wed Jun 18 11:04:42 2008.1170437) : GetClassList for MSSQLSERVER hr 00000000 (Wed Jun 18 11:04:42 2008.1170453) : m_apMasterClassList[0]->Merge for MSSQLSERVER hr 00000000 (Wed Jun 18 11:04:42 2008.1170453) : GetClassList for MSSQLSERVER hr 80041001 The following entries were in the Event Log. Source: WinMgmgt Event ID: 40 Description: WMI ADAP was unable to create the object Win32_PerfFormattedData_MSSQLSERVER_SQLServerBufferManager for Performance Library MSSQLSERVER because error 0x80041002 was returned Source: LoadPerf Event ID: 1000 Description: Performance counters for the MSSQLServer (SQL Server (MSSQLSERVER)) service were loaded successfully. The Record Data contains the new index values assigned to this service. 0000: 0c 14 00 00 .... Source: LoadPerf Event ID: 1001 Description: Performance counters for the MSSQLSERVER (SQL Server (MSSQLSERVER)) service were removed successfully. The Record Data contains the new values of the system Last Counter and Last Help registry entries. 0000: 8e 30 00 00 8f 30 00 00 Ž0.. 0.. 0008: 17 07 00 00 .... The Extensible Counter List tool from the Resource Kit (c:\Program Files\Resource Kit\exctrlst.exe) shows that the SQL Server performance counter dll is registered and enabled. MSSQLSERVER sqlctr90.dll [x] Performance Counters Enabled DLL Name: sqlctr90.dll Open Procedure: OpenSQLPerformanceData1 Collect Procedure: CollectSQLPerformanceData1 Close Procedure: CloseSQLPerformanceData1 Counter ID Range: 12432 to 13060 Help ID Range: 12433 to 13061 And sqlctr90.dll exists in c:\windows\system32 The machine has the following registry settings. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER \Performance First Counter 0x3090 (12432) Last Counter 0x3304 (13060) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib \009\Counter .... 12432 SQLServer:Buffer Manager .... Interestingly, the first counter is the SQLServer::Buffer Manager which is the class with the 0x80041002 (WBEM_E_NOT_FOUND) error in the Event Log for. This may mean the first counter failing is preventing the other counters from being loaded (or attempted). These queries work fine in SQL Server Management Studio select * from sysperfinfo select * from sys.dm_os_performance_counters And perfmon (and perfmon /wmi) correctly show the SQL Server performance counters. Does anyone have any idea why the Win32_PerfFormattedData_MSSQLSERVER_* WMI classes don't exist on my machine, or how to fix this problem.