Exchange 2013 Cumulative Update 5

Microsoft recently released its quarterly update for Exchange Server 2013, Cumulative Update 5 (CU5), and the successor of Exchange 2013 Service Pack 1 (which is Cumulative Update 4 under the hood). It is a Cumulative Update, so it contains all fixes, features and functionality of earlier CU’s so if you’re installing a fresh Exchange 2013 server or upgrade for example from CU2 there’s no need to install SP1 first. Just start directly installing Exchange 2013 CU5.

There are not too many new features in CU5. The most important new feature is the new OAB model in CU5. Right now you have the possibility to create multiple OAB Generation Mailboxes and assign specific OAB’s to these Generation Mailboxes. This prevents the creation of multiple, identical, yet not unique OAB’s in the organization. An interesting article can be found on the Exchange Team blog on

Not directly related to Cumulative Update 5, but the Exchange Team recently released another two very interesting articles regarding MapiHttp (new in Exchange 2013 SP1) and the Exchange 2013 Preferred Architecture as presented on MEC2014. You can find these articles here:

There’s one issue that was found recently in CU5 (actually too late to fix this in the current release) which is an over-reactive Managed Availability Probe. This can cause the Exchange Shared Cache Service to restart frequently. This is documented in knowledge base article KB2971467.

These are the CU5 Release Notes and a list of (customer reported) issues that are fixed in CU5 can be found in Microsoft knowledgebase article KB2936880. CU5 itself can be downloaded from the Microsoft Download Center. On the Microsoft Download Center you can find the accompanying CU5 UM Language Packs as well.

Note. At the same time Microsoft has released Update Rollup 6 for Exchange 2010 Service Pack 3.

Installing Exchange 2013 CU5

Upgrading from a previous release of Exchange 2013 to Exchange 2013 CU5 is not different then upgrading to for example Exchange 2013 CU3.

If you have any UM Language packs installed you have to remove these first before upgrading to Exchange 2013 CU5. To do this you have to use the unattended setup:

setup.exe /RemoveUMLanguagePack: <UmLanguagePackName>

Once removed you can continue upgrading to CU5.

Exchange 2013 CU5 contains schema changes. To upgrade the Schema to CU5 you can execute the following command:

Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

If you want to check the Schema version you can use the following PowerShell commands:

 $root = [ADSI]"LDAP://RootDSE"
$m = [ADSI]("LDAP://" + "CN=ms-Exch-Schema-Version-Pt," + $root.schemaNamingContext)

It should return 15300 when upgraded to CU5.

Personally I like to upgrade the Configuration Partition and the Domain Partition manually as well and I always recommend to include this in your default upgrade process:

Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

Setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms

Upgrading an Exchange 2013 server to CU5 is very straightforward. Open a command prompt and enter the following command:

Setup.exe /Mode:Upgrade /IAcceptExchangeServerLicenseTerms

Normally there are no dependencies causing one Exchange 2013 server role to be installed before another. With CU5 it’s different under certain circumstances. If you have multiple OAB Generation Mailboxes deployed in your organization you have to upgrade the Exchange 2013 Client Access servers first. The Client Access servers contain the logic to deal with this situation.

Upgrading DAG members

If you have multiple Exchange 2013 servers in a DAG, you have to put the DAG member that will be upgraded in maintenance mode first. In maintenance mode all active copies of the Mailbox databases will be moved off of the server and the possibility of moving back will be blocked. Also the Primary Active Manager (PAM) is running on this server will be moved to another DAG member.

The process is as follows:

  • Put a DAG member in maintenance mode.
  • Install the Cumulative Update.
  • Take the DAG member out of maintenance mode.
  • Redistribute the active Mailbox databases across the DAG.

Note. If you’re running a DAG most likely you will have multiple Exchange Server 2013 Client Access servers as well, or maybe you are using multi-role servers. Either way, the Client Access server needs to be disabled in the load balancers as well of course as shown in the following figure where the EXCH02 Real Server is disabled (and therefore not servicing any client requests).


To put a DAG member in Maintenance Mode open the Exchange Management Shell, navigate to the $Exscripts directory and enter the StartDAGServerMaintenance.ps1 -Server <<servername>> command.

Now install the CU5 binaries as explained before. Once installed the DAG member can be taken out of Maintenance Mode. Open the Exchange Management Shell and enter the StopDAGServerMaintenance.ps1 -Server <<servername>> command from the $Exscripts directory.

Repeat these steps for the other DAG members and if you’re running multi-role servers, don’t forget to enable/disable the Real Servers at the same time.

The last step is to redistribute the Mailbox database across the DAG. You can use the RedistributeActiveDatabases.ps1 script in the $Exscripts directory to do this:

 CD $Exscripts
.\RedistributeActiveDatabases.ps1 -DagName <<name>> -BalanceDbsByActivationPreference -Confirm:$False



Exchange 2013 CU5 doesn’t bring a lot of new features, but it does bring a lot of hotfixes. Also do not forget the supportability of earlier versions (Cumulative Updates) since these won’t be supported that long. Support ends typically 3 months after the release of a new Cumulative Update, which means that the support for Exchange 2013 CU3 will stop soon.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s