After completing maintenance activities such as Cumulative Updates (CU), Security Updates (SU), hardware changes, or configuration tasks, the Exchange Server must be safely brought back into production. This process ensures that database activation is re-enabled, cluster resources are resumed, and mail flow is fully restored without causing service disruption in a Database Availability Group (DAG) environment.
In this guide, we will walk through the PowerShell commands required to exit maintenance mode and explain what each command does and why it is necessary.
⚙️ Exchange Server Exit Maintenance Mode Commands Explained
1. Reactivate Exchange Server Components
Set-ServerComponentState "MSFT-EXCH-AZ-BAKU-01" -Component ServerWideOffline -State Active -Requester Maintenance
What it does:
- Brings all Exchange server components back online.
- Re-enables client and service access.
Why it is used:
This is the primary step that removes the server from maintenance mode and allows Exchange services to start functioning again.
2. Resume Cluster Node
Resume-ClusterNode -Name "MSFT-EXCH-AZ-BAKU-01"
What it does:
- Resumes the server in Windows Failover Cluster.
- Allows cluster resources to move back or be rebalanced.
Why it is used:
Ensures the node is again eligible to host cluster roles and DAG resources.
3. Enable Database Auto Activation
Set-MailboxServer "MSFT-EXCH-AZ-BAKU-01" -DatabaseCopyAutoActivationPolicy Unrestricted
What it does:
- Allows mailbox database copies to activate automatically on the server.
Why it is used:
Restores normal DAG behavior for database failover and load balancing.
4. Re-enable Database Activation
Set-MailboxServer "MSFT-EXCH-AZ-BAKU-01" -DatabaseCopyActivationDisabledAndMoveNow $false
What it does:
- Removes activation restrictions on mailbox databases.
- Allows active copies to move back if needed.
Why it is used:
Ensures the server can again host active mailbox databases.
5. Reactivate Hub Transport Service
Set-ServerComponentState "MSFT-EXCH-AZ-BAKU-01" -Component HubTransport -State Active -Requester Maintenance
What it does:
- Re-enables mail flow processing on the server.
Why it is used:
Restores message submission and transport services after maintenance.
6. Verify Cluster Node Status
Get-ClusterNode "MSFT-EXCH-AZ-BAKU-01"
What it does:
- Displays current cluster node state.
Why it is used:
Confirms that the server is fully rejoined to the cluster and operational.
7. Test Exchange Service Health
Test-ServiceHealth "MSFT-EXCH-AZ-BAKU-01"
What it does:
- Checks whether all required Exchange services are running.
Why it is used:
Validates that Exchange services started correctly after maintenance.
8. Test MAPI Connectivity
Test-MAPIConnectivity -Server "MSFT-EXCH-AZ-BAKU-01"
What it does:
- Tests mailbox access via MAPI protocol.
Why it is used:
Ensures end-user mailbox connectivity is functional.
9. Check Database Copy Status (Single View)
Get-MailboxDatabaseCopyStatus -Server "MSFT-EXCH-AZ-BAKU-01" | Sort Name | Select Name, Status, ContentIndexState
What it does:
- Shows database copy health for the specific server.
Why it is used:
Verifies replication status and content indexing after maintenance.
10. Check Database Copy Status (Global View)
Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, ContentIndexState
What it does:
- Displays all database copies across the DAG.
Why it is used:
Ensures DAG-wide replication health is stable.
11. Test Replication Health
Test-ReplicationHealth -Server "MSFT-EXCH-AZ-BAKU-01"
What it does:
- Runs a full DAG replication health check.
Why it is used:
Confirms that database replication, replay queues, and copy queues are healthy.
✅ Conclusion
Bringing an Exchange Server out of maintenance mode is a critical step that restores full DAG functionality, mail flow, and client access. Proper execution of these commands ensures that database activation, clustering, and transport services return to a healthy production state without impacting availability or data integrity.