On December 17, 2019 Microsoft released Exchange 2019 CU4 and Exchange 2016 CU15 as part of their quarterly release cycle. As expected, no new features in these Cumulative Updates. According to the Microsoft vision, if you want the latest and greatest you need Exchange Online, if you’re satisfied with a rock solid on-premises deployment you’re good with these versions. And since Exchange 2013 is out of support, no Cumulative Update for Exchange 2013 is released.
One important issue for Exchange 2019 CU4 and Exchange 2016 CU15 is that the .NET Framework 4.8 is now mandatory, so you need to install this version first before installing the Exchange updates. For more information regarding Exchange and the .NET Framework dependencies please check Microsoft Exchange and the .NET Framework on the ENow Solution Engine.
Other important things you have to be aware of are:
When upgrading, don't forget to put the Exchange servers in maintenance mode, especially when the Exchange servers are configured in a Database Availability Group (DAG). You can use these Exchange PowerShell commands to put a server in maintenance mode:
$Computer = $ENV:ComputerName Set-ServerComponentState $Computer -Component HubTransport -State Draining -Requester Maintenance Redirect-Message -Server $Computer -Target <Other Exchange Server> # Prevent DAG member becoming PAM Suspend-ClusterNode $Computer # Move all Mailbox Databases and prevent hosting copies on current server Set-MailboxServer $Computer -DatabaseCopyActivationDisabledAndMoveNow $True Set-MailboxServer $Computer -DatabaseCopyAutoActivationPolicy Blocked # Put the Exchange 2013 server in Maintenance Mode: Set-ServerComponentState $Computer -Component ServerWideOffline -State Inactive -Requester Maintenance |
You can verify if the server is actually running in maintenance mode by using the following command in Exchange PowerShell:
Get-ServerComponentState $Computer | ft Component,State –Autosize |
When the server is upgraded you get the Exchange server out of Maintenance Mode by running the following commands in Exchange Management Shell:
$Computer = $ENV:ComputerName Resume-ClusterNode $Computer Set-MailboxServer $Computer -DatabaseCopyActivationDisabledAndMoveNow $False Set-ServerComponentState $Computer -Component HubTransport -State Active -Requester Maintenance Restart-Service MSExchangeTransport |
To check if the server is fully up and running again you can use the following command in Exchange Management Shell:
Get-ServerComponentState $Computer | ft Component,State –Autosize |
The last recommendation I can give, as always, is to test these Cumulative Updates in your test environment thoroughly. Take your time, monitor your favorite blogposts and the Microsoft Exchange team site to see if there are any (unexpected) updates.
Watch all aspects of your Exchange environment from a single pane of glass: client access, mailbox, and Edge servers; DAGs and databases; network, DNS, and Active Directory connectivity; Outlook, ActiveSync, and EWS client access.