One of the functions in the code I posted in “Check Exchange 2003 vitals with PowerShell” is to check performance counters. When running the script, you may encounter an error:

Get-WmiObject : Invalid Class


This could happen for 2 reasons:

1: You have a typo in Perf Counter object.

2: The performance counter is missing on the host you are checking.


When this happened to me, I checked and verified this by loading performance monitor on affected server and trying to load Memory counters which the code was checking for. To no surprise, I found that the server did not have Memory object.

There are many reasons why the performance object could go missing from the OS. The KB article “How to manually rebuild Performance Counter Library values” explains how you can resolve this problem and bring the missing performance counter objects back.