I wrote the following Power Shell script to reload the Exchange performance counters.
NET Framework update on Exchange 2010, Exchange 2013, or Exchange 2016 servers. Setup$perfcounters = Get-Child Item "$env: Exchange Install Path\Setup\Perf\" *| Where-Object $perfcount = $perfcounters.
And here comes the catch - if you run your app in IIS and there are multiple application pools running, each pool has its own "instance name". It may work in some cases (i was successful in using app level counters in IIS running single .
NET app pool and nothing else) but fails in others..
The script might throw some errors if performance counters cannot be created or files are invalid, other than that no information is displayed, no news is good news, I guess ;) For more information check the Application Log of the server, two events are logged for every performance counter.
Microsoft is conducting an online survey to understand your opinion of the Technet Web site.Counter name is LDAP Queries Issued by Expanded Groups., category name is Expanded Groups Cache. I wrote a simple script to re-register all the Exchange 2013 performance counters.Now the Application log looks much better First open Powershell in Admin Mode, then execute the following code: Note that New-Perf Counters actually deletes and re-creates the performance counter, there is no need to use Remove-Perf Counters first. Counter name is Power Shell Average Response Time, category name is MSExchange Remote Powershell. The issue is caused by an error in the Exchange setup process where a performance counter definition is tried to read from the wrong location. Copy the following script to a text file and save with the .ps1 extension. If you run into issues you can manually retry the process for that specific performance counter definition. Invalid Operation Exception: The requested Performance Counter is not a custom counter, it has to be initialized as Read Only.