Golden Rule #1: Restart your command process and any existing apps when you modify performance counters. Performance counters are installed into the registry, so are not refreshed - only loaded in once to the current process. This causes much frustration.

Golden Rule #2: Don’t mess about with the registry, it can cause performance counters to vanish but still exist so you can’t create them again.

Listing performance counters

Note that after modifying counters, you should close your console session. Performance counters are only loaded when a process is started.

To see all the performance counters installed on a Windows machine and save them in the counters.txt text file, run the following in either cmd or powershell:

typeperf.exe -q > counters.txt

To find a performance counter by name using wildcards using Powershell:

> Get-Counter -ListSet "My.Counter.Name(*)"

Deleting Performance Counters

To delete an existing performance counter using Powershell - this has to be exact!

[Diagnostics.PerformanceCounterCategory]::Delete( "My.Counter.Name" )

Further reading