Checklist
Exchange Server SE in-place upgrade checklist
Based on the article: In-place upgrade from Exchange Server 2019 to Exchange Server SE, step by step · 5 min read
If your Exchange Server 2019 servers run CU14 or CU15, moving to Exchange Server Subscription Edition (SE) doesn't need new servers or mailbox moves: Setup upgrades them in place, much like installing a cumulative update. In this post I'll walk through what to check first, the exact commands, how to handle DAG members, what happens to your product key, and what a healthy upgraded server looks like.
Before you start
An in-place upgrade is supported only from Exchange Server 2019 CU14 or CU15.
- Exchange 2019 CU13 or older: install CU14 or CU15 first, then upgrade to SE.
- Exchange 2016: there is no in-place path. You need a legacy upgrade: add SE servers, move mailboxes and services, then uninstall the old servers.
- New hardware or a newer Windows Server version: also a legacy upgrade, because upgrading Windows underneath an installed Exchange server isn't supported.
- No Exchange 2013 left. SE Setup won't run while an Exchange 2013 server still exists in the organisation.
- Permissions. Run Setup with an account in Organization Management. If Setup has to update Active Directory, the account also needs Schema Admins and Enterprise Admins, or the AD team can run the preparation for you (step 2).
- Licensing. SE needs an active entitlement through Software Assurance or a qualifying subscription. My Exchange Server SE explainer covers licensing and planning.
Get-ExchangeServer | Sort-Object Name |
Format-Table Name, ServerRole, Edition, AdminDisplayVersion -AutoSize+3 more prerequisites in the full article.
Checklist
- 1
Get the SE media onto the server
Download the Exchange Server SE ISO, mount it locally (the examples use
D:) and open an elevated Command Prompt or PowerShell window. - 2
Prepare Active Directory (optional)
Setup updates the schema and the Exchange organisation in Active Directory by itself when the account has the rights. If those rights belong to another team, have them run these commands first and wait for AD replication:
cmdD:\Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareSchema D:\Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD - 3
Put DAG members into maintenance mode
Upgrade one DAG member at a time. Note the current activation policy (
Get-MailboxServer EX01 | Format-List DatabaseCopyAutoActivationPolicy), then drain and isolate the server:powershellSet-ServerComponentState EX01 -Component HubTransport -State Draining -Requester Maintenance Redirect-Message -Server EX01 -Target EX02.contoso.com Suspend-ClusterNode -Name EX01 Set-MailboxServer EX01 -DatabaseCopyActivationDisabledAndMoveNow $true Set-MailboxServer EX01 -DatabaseCopyAutoActivationPolicy Blocked Set-ServerComponentState EX01 -Component ServerWideOffline -State Inactive -Requester Maintenance - 4
Run Setup in upgrade mode
cmdD:\Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /Mode:UpgradeUse
_DiagnosticDataONif you want to send diagnostic data to Microsoft. Setup runs readiness checks first and stops if a prerequisite is missing. - 5
Install the latest SE security update
Fixes released after RTM aren't on the RTM media, so install the newest Security Update (or Hotfix Update) published for SE RTM, again from an elevated prompt, and restart. My security update guide covers preparation and common failures.
- 6
Bring the server back into service
powershellSet-ServerComponentState EX01 -Component ServerWideOffline -State Active -Requester Maintenance Resume-ClusterNode -Name EX01 Set-MailboxServer EX01 -DatabaseCopyActivationDisabledAndMoveNow $false Set-MailboxServer EX01 -DatabaseCopyAutoActivationPolicy Unrestricted Set-ServerComponentState EX01 -Component HubTransport -State Active -Requester MaintenanceRestore the activation policy you noted if it wasn't
Unrestricted. When every DAG member is done, rebalance the active databases:powershell& $exscripts\RedistributeActiveDatabases.ps1 -DagName DAG01 -BalanceDbsByActivationPreference -Confirm:$false - 7
Repeat for the rest
Upgrade the remaining Mailbox servers one at a time, then Edge Transport servers and workstations running the Exchange Management Tools, with the same
/Mode:Upgradecommand.
Verify
Get-ExchangeServer EX01 | Format-List Name, Edition, AdminDisplayVersion
Get-Command ExSetup.exe | ForEach-Object { $_.FileVersionInfo.FileVersion }
Test-ServiceHealth -Server EX01
Get-ServerComponentState EX01 | Where-Object State -ne "Active"
Get-MailboxDatabaseCopyStatus -Server EX01 | Format-Table Name, Status, CopyQueueLength, ReplayQueueLengthGood looks like:
AdminDisplayVersionshowsVersion 15.2 (Build 2562.17), the SE RTM build. It doesn't change when you install security updates, so use the ExSetup file version (15.02.2562.xxx) to confirm the update level.Editionstill shows Standard or Enterprise rather than a trial (Evaluation) edition. SE RTM doesn't need a new product key and keeps working after an in-place upgrade.RequiredServicesRunningis True for every role.- No inactive components except
ForwardSyncDaemonandProvisioningRps, which are normally inactive on-premises. - Database copies are Healthy with low copy and replay queues.
- OWA, the Exchange admin center, Outlook and mobile clients connect, mail flows both ways, and the Health Checker shows no new red findings.
Tips & gotchas
- Don't wait for CU1. It will install over SE RTM like any other CU, and every month spent on Exchange 2019 is a month on an out-of-support product.
- Mind the CU2 deadline. SE CU2 Setup will block coexistence with versions unsupported at its release, including 2016 and 2019. If Exchange 2016 is still around, see your options after end of support.
- Keep mixed builds short-lived, and reapply recorded customisations after each server.
- Always give Setup a path (
D:\Setup.exeor.\Setup.exe). In PowerShell, a baresetup.execan start the copy in Exchange's Bin folder, which then "succeeds" without upgrading anything. - Product keys: nothing to do for SE RTM. Microsoft has said a future CU will introduce an SE product key requirement, so read the release notes of every CU before installing it.
+1 more tips in the full article.