CU install Exchange 2016

Following you will find a common description how to perform a CU install on Exchange 2016. I did not want to write it for a specific CU since every CU has its own tribulations.

A good advice after a new CU release is to wait some weeks with the CU install until possible difficulties get named and documented. Usually after some weeks have passed I start to gather information on the CU to be installed.

ToDos before you begin :

Check the required .NET version and update it if needed :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Find the actual .Net version number under Release and verify it with the following list from Microsoft :
how-to-determine-which-versions-are-installed


If your servers are in a failover cluster , check the active cluster group manager and move it to another server before you install the CU on the current cluster group manager. ( it usually failovers automatically on reboot but I like to go for sure )


Untick check for publisher’s certificate revocation in IE under Internet Options – Advanced tab – Security

Let’s assume you want to perform the CU Install in an environment where all Exchange Servers are members of a DAG and have min. one database copy. As always install it in a test environment first.

————————

Ok , good to go :

Switch the active mailbox databases on the server you want to install the CU to another mailbox database copy on another server within the DAG :

Move-ActiveMailboxDatabase DatabaseName -ActivateOnServer TargetServerName

Set the server where you install the CU in maintenance mode :

Set-ServerComponentState ServerNameToInstallCU -Component hubtransport -State Draining -Requester maintenance
Restart-Service MSExchangeTransport
Restart-Service MSExchangeFrontEndTransport
Redirect-Message -Server ServerNameToInstallCU -Target AnotherExchangeServerWithinTheDAG

Set-MailboxServer ServerNameToInstallCU -DatabaseCopyAutoActivationPolicy Blocked
Suspend-ClusterNode ServerNameToInstallCU
Set-ServerComponentState ServerNameToInstallCU -Component ServerWideOffline -State Inactive -Requester Maintenance

Suspend the mailbox databases :

Get-MailboxDatabaseCopyStatus -Server ServerNameToInstallCU | Suspend-MailboxDatabaseCopy

A short check :
Get-MailboxDatabaseCopyStatus -Server ServerNameToInstallCU

All mailboxdatabase copies on this server should be suspended now.

CU Install Exchange 2016 :

Open an elevated command prompt and navigate to the drive you have mounted the iso. ( or to the folder where you have copied the CU installation files ). Start the install with the commands below. ( When a step is finished trigger the next one ) . PrepareSchema, prepareAD and prepareDomain just need to be triggered when you upgrade the first Exchange Server in your environment !

CU install Exchange

Important ! > When you have navigated in an elevated command prompt to the CU Install files make sure to type in the path again before the \setup.exe . For example when your .iso is mounted on drive E: it should look like :

Cause : It seems the system refers by default to the setup.exe of the CU you have installed before.
Without giving the explicit path to the current setup.exe it can happen that the first line of the installer’s output will greet you with the name of the CU you have installed before. ( This means that the systems tries to install the old CU again ).

Setup.exe /prepareSchema /IAcceptExchangeServerLicenseTerms ( only on the 1st server you upgrade )
Setup.exe /prepareAD /IAcceptExchangeServerLicenseTerms ( only on the 1st server you upgrade )
Setup.exe /prepareDomain /IAcceptExchangeServerLicenseTerms ( only on the 1st server you upgrade )
Setup.exe /mode:upgrade /IAcceptExchangeServerLicenseTerms

After the CU Install has finished restart the server.

I usually verify under programs and features that the CU install was succesful.

Resume the suspended mailbox database copies :

Get-MailboxDatabaseCopyStatus -Server ServerNameCUInstalled | Resume-MailboxDatabaseCopy
Check the status of the databases and the ContentIndex :
Get-MailboxDatabaseCopyStatus -Server ServerNameCUInstalled

Wait until all mailbox database copies are in status healthy and (!) the ContentIndex status is healthy as well. In environments with huge traffic this can take a while. So be patient and do not panic when the ContentIndex states are switching to failed after a while. Just wait. All will be good.


Resume the server you have installed the CU from maintenance mode :

Set-ServerComponentState ServerNameCUInstalled -Component ServerWideOffline -State Active -Requester Maintenance
Resume-ClusterNode ServerNameCUInstalled
Set-ServerComponentState ServerNameCUInstalled -Component HubTransport -State Active -Requester Maintenance
Restart-Service MSExchangeTransport
Restart-Service MSExchangeFrontEndTransport
Set-MailboxServer ServerNameCUInstalled -DatabaseCopyAutoActivationPolicy Unrestricted

Mount the mailbox database copies back to the server where you just have installed the CU.
This can be done by just waiting for the server to activate/mount the mailbox database copies back automatically.
( This happens when -DatabaseCopyAutoActivationPolicy has been set to Unrestricted as we have done it in the step before )

Or if you want to keep the control mount the mailbox database copies back manually :

Move-ActiveMailboxDatabase DatabaseName -ActivateOnServer ServerNameCUInstalled

Login via Outlook and OWA to a Mailbox which resides on a mailbox database on this server to test if all works fine.

1 Like
TestBeforeI

Leave a Reply

Your email address will not be published. Required fields are marked *