We had some errors using Exchange vCheck on our HomeLab (a little reminder, Exchange vCheck represents some plugins using main vCheck framework in order to make some nice report for Exchange 2007/2010 platform, further informations are available on Alan website : vCheck for Exchange).
In our case, the server running vCheck script(s) was the vCenter one, so there was no Exchange role installed (even for a homelab, we are not happy with some all-in-a-box server), only management tools (unattended installed via command Setup.com /mode:install /role:MT).
During Exchange vCheck execution, a lot of errors just appear in Windows event log :
Here was the description of theses errors :
Performance counter updating error. Counter name is Client-side Calls, category name is MSExchange Active Manager Client. Optional code: 2. Exception: The exception thrown is : System.InvalidOperationException: The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly. at System.Diagnostics.PerformanceCounter.Initialize() at System.Diagnostics.PerformanceCounter.get_RawValue() at Microsoft.Exchange.Diagnostics.ExPerformanceCounter.get_RawValue() Last worker process info : Last worker process info not available! Processes running while Performance counter failed to update: ... Performance Counters Layout information: FileMappingNotFoundException for category MSExchange Active Manager Client : Microsoft.Exchange.Diagnostics.FileMappingNotFoundException: Cound not open File mapping for name : Global\netfxcustomperfcounters.1.0msexchange active manager client at Microsoft.Exchange.Diagnostics.FileMapping.OpenFileMapping(String name, Boolean writable) at Microsoft.Exchange.Diagnostics.FileMapping..ctor(String name, Boolean writable) at Microsoft.Exchange.Diagnostics.PerformanceCounterMemoryMappedFile.Initialize(String fileMappingName, Boolean writable) at Microsoft.Exchange.Diagnostics.ExPerformanceCounter.GetAllInstancesLayout(String categoryName)
And if you were using classic vCheck VMware plugin, you’ll get also theses errors in the vCheck report :
By searching on Google (“What Else!”), we finally found the cause. Perfmon counters are supposed to be initialized during Exchange 2010 roles installation, but when you install only management tools, it happens that some counters definition for the following services can be incomplete:
- MSExchange Active Manager Server (ActiveManagerClientPerfmon)
- MSExchange Admin Audit Log (AdminAuditPerfCounters)
- MSExchange Middle-Tier Storage (MiddleTierStoragePerformanceCounters)
In order to confirm this, we just had to run the lodctr command on counters definition files (available in C:\Program files\Microsoft\Exchange Server\V14\Setup\Perf) , it’ll just throw you an error.
The counter’s parameter’s definition is available in registry at the path HKLM\SYSTEM\CurrentControlSet\Services\MSExchange Active Manager Client\Performance :
So we just had to export the definition of theses 3 counters from a regular Exchange 2010 server with the required roles (by creating a .reg export from registry) and import them on the server with only management tools in order to be able to run the lodctr command and to stop errors from happening: