Exchange performance:HP NUMA BIOS settings

I was just made aware of a HP specific setting which has a huge impact on performance. But before you start panic, have a look at the conditions:

  • you’re running Proliant Gen9 Servers
  • these servers are equipped with Intel Xeon E5 2600v3 and higher processors
  • you have the default setting for NUMA Group Size Optimization

If you’re not matching these conditions, you can stop reading and relax. If not….you might want to continue reading.

Update 01.08.2017

Another PFE made me aware that the script HealthChecker.ps1 is checking the setting by comparing the values EnvProcessorCount and NumberOfLogicalProcessors


Good example


Bad example

Continue reading

Modern Attachments behind a web proxy

With Exchange 2016 a huge improvement in regards of document collaboration with OneDrive for Business was introduced when you have a Hybrid configured.

You can read more about it here:

When I introduced Exchange 2016, I was more than happy to configure and make this feature available to my end-users. But after I run through the prerequisites and steps, I wasn’t able to get the option in OWA and with Outlook I received the following error:


The same happened when I was using Outlook for Mac. As different clients, protocols and servers where affected, I assumed a general issue and started troubleshooting.

Continue reading

Get-IISStats: Updated version available

Over the last months a lot of changes needed to be addressed. The script was intended to extract data from the IIS logs. With PowerShell in combination with LogParser it did a great job. But different versions of Exchange, changed infrastructure and multiple versions of Exchange ActiveSync protocol demanded an update to fulfill these needs.

The latest version focused on code improvement and added support for the new version of Exchange ActiveSync protocol v16.1 .

Continue reading

Get-ExchangeDiagnosticInfo: Deep dive

In a previous post here, I wrote about a few basic commands, which are useful to quickly gather information about transport component of an Exchange server.

In this post I want to give you a deep dive about it and how you can explore what the CmdLet can do for you as it evolves in each Exchange version and can be very useful.

Continue reading

How to hunt down an EAS bug

In the past month I had to troubleshoot a lot of EAS related issues. This is always a complex process and you as an administrator have to collect a lot of data and provide them to your vendors. After providing these, you often feels like a ping-pong ball. Especially when multiple vendors are involved.

Based on two examples I want to explain, how I was able to proof some misbehaviour of EAS clients. Meanwhile both have been acknowledged by the vendor as a bug:

With iOS 10 this feature can trigger a meeting forward to multiple recipients using SmartForward command.

When a user marks an item read or unread, the flag does not get synced to the mailbox.

Update 27.06.2017: There is also a fix in KB4012108 related to this issue. It’s not exactly the issue I’ve found, but a similar one. The details can be found in KB4024649.

For troubleshooting I used the following tools:

Continue reading

Outlook:No free/busy in scheduling assistant

Every now and then I hear complaints about Free/Busy information retrieval issues. There are a lot of reasons for such issues, but the interesting part by these issues is that accessing the shared Calendar is not a problem. Only when users set up a meeting and using the Scheduling Assistant, they suddenly see only the beloved hash marks:


Using OWA the user was able to retrieve Free/Busy information using Scheduling Assistant.

And this happens usual to VIPs like the CEO or CIO. So I started troubleshooting with highest priority and found an easy fix.

Continue reading

Exchange 2016 and FileMappingSize

Lately I installed my first DAG with Exchange 2016 CU3 in productive environment. In the beginning it went really smoothly. But after all databases have been created, I realized that databases got bounced around the nodes and a lot of errors in the Event Log like these:

Log Name:      Application
Source:        MSExchangeIS
Date:          12/14/2016 9:53:07 AM
Event ID:      1001
Task Category: General
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      FABEX01.fabrikam.local
Microsoft Exchange Server Information Store has encountered an internal logic error. Internal error text is (ProcessId perf counter does not match actual process id.) with a call stack of (   at Microsoft.Exchange.Server.Storage.Common.ErrorHelper.AssertRetail(Boolean assertCondition, String message)
at Microsoft.Exchange.Server.Storage.Common.Globals.AssertRetail(Boolean assertCondition, String message)

The store worker processes kept constantly crashing.

Continue reading