Anavem
Languageen
Comment mettre Exchange Server en mode maintenance à l'aide de PowerShell

Comment mettre Exchange Server en mode maintenance à l'aide de PowerShell

Apprenez à mettre en mode maintenance Exchange Server en toute sécurité en utilisant des commandes PowerShell pour vider les services, rediriger les messages et gérer les configurations DAG avant d'effectuer des mises à jour ou des tâches de maintenance.

13 avril 2026 15 min
mediuméchange 8 étapes 15 min

Pourquoi mettre Exchange Server en mode maintenance ?

Mettre un serveur Exchange en mode maintenance est une procédure critique qui garantit une maintenance sécurisée du serveur sans perturber les services de messagerie de votre organisation. Que vous installiez des mises à jour cumulatives, appliquiez des correctifs de sécurité, effectuiez une maintenance matérielle ou résolviez des problèmes, des procédures de mode maintenance appropriées préviennent la perte de données et les interruptions de service.

Le mode maintenance d'Exchange Server implique de drainer systématiquement les services, de rediriger le flux de courrier et de mettre le serveur hors ligne en toute sécurité tout en maintenant la continuité des activités. Ce processus est particulièrement important dans les environnements de groupe de disponibilité de base de données (DAG) où plusieurs serveurs travaillent ensemble pour fournir une haute disponibilité.

Qu'est-ce qui rend le mode maintenance d'Exchange Server complexe ?

Contrairement aux simples redémarrages de service, le mode maintenance d'Exchange nécessite une orchestration minutieuse de plusieurs composants. Le composant HubTransport doit être drainé pour arrêter d'accepter de nouveaux messages, les messages existants doivent être redirigés vers d'autres serveurs, et dans les configurations DAG, les copies de base de données actives doivent être déplacées vers des membres sains. Le composant ServerWideOffline agit comme l'interrupteur final qui met complètement le serveur hors service.

Les environnements Exchange modernes, y compris Exchange Server Subscription Edition (SE) à partir de 2026, maintiennent les mêmes procédures de maintenance de base établies dans Exchange 2016 et 2019. Cependant, la complexité augmente dans les environnements hybrides où les serveurs sur site s'intègrent à Exchange Online, nécessitant des considérations supplémentaires pour le routage du courrier et la coexistence.

Que vais-je apprendre dans ce tutoriel ?

Ce tutoriel vous guide à travers le processus complet en utilisant des commandes PowerShell qui fonctionnent sur Exchange 2016, 2019 et Subscription Edition. Vous apprendrez à drainer en toute sécurité les services de transport, à gérer les configurations DAG, à rediriger les files d'attente de messages et à vérifier que vos procédures de maintenance ont été complétées avec succès. Nous couvrirons également les pièges courants et fournirons des étapes de vérification pour garantir que votre environnement Exchange reste sain tout au long du processus de maintenance.

Guide de mise en oeuvre

Procédure complète

01

Vérifier l'état actuel du serveur et les prérequis

Avant de mettre votre serveur Exchange en mode maintenance, vérifiez les états actuels des composants et assurez-vous d'avoir les autorisations appropriées et la configuration de l'environnement.

Ouvrez Exchange Management Shell en tant qu'administrateur et exécutez la commande suivante pour vérifier les états actuels des composants du serveur :

Get-ServerComponentState -Identity ExchangeServer01

Cette commande affiche tous les composants et leurs états actuels. Vous devriez voir des composants comme HubTransport, ServerWideOffline, et d'autres en état 'Active' avant la maintenance.

Ensuite, vérifiez la version et le rôle de votre serveur Exchange :

Get-ExchangeServer -Identity ExchangeServer01 | Select-Object Name, AdminDisplayVersion, ServerRole

Si vous travaillez avec un groupe de disponibilité de base de données (DAG), vérifiez l'état du DAG :

Get-DatabaseAvailabilityGroup | Get-MailboxServer | Where-Object {$_.Name -eq "ExchangeServer01"}
Astuce pro : Documentez l'état actuel en exportant le statut des composants dans un fichier : Get-ServerComponentState -Identity ExchangeServer01 | Export-Csv C:\Temp\PreMaintenance-ComponentState.csv

Vérification : Confirmez que tous les composants affichent l'état 'Active' et notez tout composant 'Draining' ou 'Inactive' existant qui pourrait indiquer des problèmes en cours.

02

Vidanger le composant HubTransport

La première étape en mode maintenance consiste à vider le composant HubTransport, ce qui empêche le serveur d'accepter de nouveaux messages tout en permettant le traitement des messages existants.

Exécutez la commande suivante pour définir HubTransport à l'état de vidange :

Set-ServerComponentState -Identity ExchangeServer01 -Component HubTransport -State Draining -Requester Maintenance

Cette commande indique à Exchange d'arrêter d'accepter de nouveaux messages mais de continuer à traiter ceux déjà dans la file d'attente. Le paramètre -Requester Maintenance identifie pourquoi l'état du composant a été modifié.

Surveillez les files d'attente de transport pour voir le processus de vidange :

Get-Queue -Server ExchangeServer01

Attendez que les files d'attente se vident naturellement, ou si vous devez accélérer le processus, redémarrez les services de transport :

Restart-Service MSExchangeTransport
Restart-Service MSExchangeFrontEndTransport
Avertissement : Le redémarrage des services de transport entraînera une brève interruption du flux de courrier. Ne faites cela que si vous devez accélérer le processus de vidange.

Vérification : Exécutez Get-ServerComponentState -Identity ExchangeServer01 -Component HubTransport pour confirmer que l'état indique 'Draining'.

03

Rediriger les messages restants vers un autre serveur

Après avoir vidé le composant HubTransport, redirigez les messages restants dans les files d'attente vers un autre serveur Exchange pour garantir la continuité du flux de courrier.

Identifiez un serveur cible capable de gérer les messages redirigés :

Get-ExchangeServer | Where-Object {$_.ServerRole -match "Mailbox" -and $_.Name -ne "ExchangeServer01"}

Redirigez tous les messages de votre serveur de maintenance vers le serveur cible :

Redirect-Message -Server ExchangeServer01 -Target ExchangeServer02

Cette commande déplace tous les messages en file d'attente de ExchangeServer01 vers ExchangeServer02. Le processus peut prendre plusieurs minutes selon la taille de la file d'attente.

Surveillez la progression de la redirection :

Get-Queue -Server ExchangeServer01 | Where-Object {$_.MessageCount -gt 0}

Vous pouvez également vérifier les détails spécifiques des files d'attente :

Get-Queue -Server ExchangeServer01 | Select-Object Identity, DeliveryType, Status, MessageCount, NextHopDomain
Astuce pro : Si vous avez plusieurs serveurs cibles, vous pouvez rediriger vers différents serveurs en fonction des types de files d'attente ou utiliser un répartiteur de charge pour distribuer la charge de manière uniforme.

Vérification : Confirmez que le nombre de messages dans les files d'attente diminue et atteint finalement zéro ou presque zéro pour la plupart des files d'attente.

04

Gérer la configuration du groupe de disponibilité de la base de données (DAG)

Si votre serveur Exchange fait partie d'un DAG, vous devez suspendre le nœud de cluster et déplacer les copies de bases de données actives vers d'autres membres du DAG avant de procéder à la maintenance.

Tout d'abord, suspendez le nœud de cluster pour l'empêcher de participer aux opérations de cluster :

Suspend-ClusterNode -Name ExchangeServer01

Ensuite, déplacez toutes les copies de bases de données actives du serveur de maintenance et bloquez l'activation automatique :

Set-MailboxServer -Identity ExchangeServer01 -DatabaseCopyActivationDisabledAndMoveNow $True

Bloquez l'activation automatique des bases de données sur ce serveur :

Set-MailboxServer -Identity ExchangeServer01 -DatabaseCopyAutoActivationPolicy Blocked

Vérifiez que toutes les bases de données actives ont été déplacées du serveur de maintenance :

Get-MailboxDatabase | Get-MailboxDatabaseCopyStatus | Where-Object {$_.MailboxServer -eq "ExchangeServer01" -and $_.Status -eq "Mounted"}

Vérifiez l'état global du DAG après le déplacement des bases de données :

Get-MailboxDatabaseCopyStatus | Where-Object {$_.MailboxServer -ne "ExchangeServer01"} | Sort-Object DatabaseName
Avertissement : Si vous exécutez un DAG à deux nœuds, assurez-vous que le serveur témoin est accessible avant de continuer, car vous perdrez le quorum si les deux nœuds se déconnectent.

Vérification : Confirmez qu'aucune base de données n'affiche le statut 'Mounted' sur ExchangeServer01 et que toutes les bases de données sont en bonne santé sur les autres membres du DAG.

05

Définir le serveur en mode hors ligne

La dernière étape pour activer le mode maintenance consiste à définir le composant ServerWideOffline sur Inactive, ce qui retire effectivement le serveur du service pour toutes les opérations Exchange.

Exécutez la commande suivante pour mettre le serveur hors ligne :

Set-ServerComponentState -Identity ExchangeServer01 -Component ServerWideOffline -State Inactive -Requester Maintenance

Cette commande met le serveur en état hors ligne, l'empêchant de gérer tout service Exchange, y compris les connexions client, le flux de courrier et les opérations de base de données.

Vérifiez que le serveur est maintenant en mode maintenance en vérifiant tous les états des composants :

Get-ServerComponentState -Identity ExchangeServer01

Vous devriez voir ServerWideOffline comme 'Inactive' et HubTransport comme 'Draining'. D'autres composants peuvent afficher divers états selon votre version d'Exchange.

Pour un contrôle de santé complet, vous pouvez utiliser le script Exchange Health Checker :

# Télécharger et exécuter HealthChecker.ps1 depuis Microsoft GitHub
.\HealthChecker.ps1 -Server ExchangeServer01 -OutputFilePath C:\Temp\
Astuce pro : Créez une entrée de journal de maintenance documentant quand le mode maintenance a été activé, qui l'a activé, et la durée de maintenance prévue à des fins d'audit.

Vérification : Confirmez que ServerWideOffline affiche 'Inactive' et que le serveur ne reçoit plus de connexions client ni ne traite de courrier.

06

Effectuer des tâches de maintenance

Avec votre serveur Exchange maintenant en mode maintenance, vous pouvez effectuer vos tâches de maintenance prévues telles que l'installation de mises à jour cumulatives, l'application de correctifs de sécurité ou la maintenance matérielle.

Pendant la maintenance, surveillez les autres serveurs Exchange pour vous assurer qu'ils gèrent correctement la charge supplémentaire :

# Vérifier l'état des files d'attente sur les autres serveurs
Get-ExchangeServer | Where-Object {$_.ServerRole -match "Mailbox" -and $_.Name -ne "ExchangeServer01"} | ForEach-Object {
    Write-Host "Vérification des files d'attente sur $($_.Name)"
    Get-Queue -Server $_.Name | Where-Object {$_.MessageCount -gt 10}
}

Surveiller l'état de la base de données sur les membres restants du DAG :

Get-MailboxDatabaseCopyStatus | Where-Object {$_.MailboxServer -ne "ExchangeServer01"} | Sort-Object DatabaseName | Format-Table DatabaseName, MailboxServer, Status, CopyQueueLength, ReplayQueueLength

Si vous installez des mises à jour cumulatives Exchange, le processus typique implique :

REM Exécuter l'installateur CU depuis une invite de commande élevée
ExchangeServer2019-KB5000871-x64-en.exe /mode:upgrade /IAcceptExchangeServerLicenseTerms

Après avoir terminé les tâches de maintenance, vérifiez que les services Exchange fonctionnent correctement :

Get-Service | Where-Object {$_.Name -like "*Exchange*" -and $_.Status -ne "Running"}
Avertissement : Ne quittez pas le mode maintenance tant que vous n'avez pas vérifié que toutes les tâches de maintenance ont été complétées avec succès et que les services Exchange fonctionnent correctement.

Vérification : Assurez-vous que toutes les tâches de maintenance prévues sont terminées et que les services Exchange sont dans leur état de fonctionnement attendu avant de quitter le mode maintenance.

07

Quitter le mode maintenance et restaurer les services

Après avoir terminé vos tâches de maintenance, vous devez inverser le processus de mode de maintenance dans le bon ordre pour remettre votre serveur Exchange en ligne en toute sécurité.

Commencez par remettre le composant ServerWideOffline à Actif :

Set-ServerComponentState -Identity ExchangeServer01 -Component ServerWideOffline -State Active -Requester Maintenance

Si votre serveur fait partie d'un DAG, reprenez le nœud de cluster :

Resume-ClusterNode -Name ExchangeServer01

Débloquez l'activation de la base de données et autorisez l'activation automatique :

Set-MailboxServer -Identity ExchangeServer01 -DatabaseCopyActivationDisabledAndMoveNow $False
Set-MailboxServer -Identity ExchangeServer01 -DatabaseCopyAutoActivationPolicy Unrestricted

Réactivez le composant HubTransport :

Set-ServerComponentState -Identity ExchangeServer01 -Component HubTransport -State Active -Requester Maintenance

Redémarrez les services de transport pour assurer un bon flux de courrier :

Restart-Service MSExchangeTransport
Restart-Service MSExchangeFrontEndTransport

Vérifiez que tous les composants sont de retour à l'état Actif :

Get-ServerComponentState -Identity ExchangeServer01
Astuce pro : Attendez 10-15 minutes après être sorti du mode de maintenance avant de tester la connectivité des clients pour permettre à tous les services de s'initialiser complètement et de s'enregistrer avec les équilibreurs de charge.

Vérification : Confirmez que tous les composants du serveur affichent l'état 'Actif' et que le serveur semble sain dans le Centre d'administration Exchange.

08

Vérifier la restauration complète du service

La dernière étape consiste à tester minutieusement que votre serveur Exchange est pleinement opérationnel et gère correctement les connexions des clients et le flux de courrier.

Testez le flux de courrier en envoyant un message de test via le serveur :

# Test du flux de courrier interne
$TestMailbox = "testuser@contoso.com"
Send-MailMessage -From "admin@contoso.com" -To $TestMailbox -Subject "Test post-maintenance" -Body "Test du flux de courrier après maintenance" -SmtpServer ExchangeServer01

Vérifiez que les bases de données se montent correctement et acceptent les connexions :

Get-MailboxDatabase | Where-Object {$_.Server -eq "ExchangeServer01"} | Get-MailboxDatabaseCopyStatus

Vérifiez la connectivité des clients en testant divers protocoles :

# Test de connectivité à divers services Exchange
Test-OutlookConnectivity -ProbeIdentity "OutlookMapiHttp.Protocol" -TargetResource ExchangeServer01
Test-WebServicesConnectivity -MailboxCredential (Get-Credential) -TrustAnySSLCertificate

Surveillez les files d'attente de transport pour assurer un flux de courrier normal :

Get-Queue -Server ExchangeServer01 | Where-Object {$_.MessageCount -gt 0} | Format-Table Identity, Status, MessageCount, NextHopDomain

Exécutez un dernier contrôle de santé à l'aide du script Exchange Health Checker :

.\HealthChecker.ps1 -Server ExchangeServer01 -OutputFilePath C:\Temp\PostMaintenance\

Comparez le rapport de santé post-maintenance avec votre référence pré-maintenance pour identifier tout problème.

Conseil pro : Continuez à surveiller le serveur pendant 24 à 48 heures après la maintenance pour détecter tout problème retardé qui pourrait ne pas être immédiatement apparent.

Vérification : Confirmez que le flux de courrier fonctionne, que les clients peuvent se connecter avec succès et que tous les contrôles de santé passent sans erreurs critiques.

Questions Fréquentes

Combien de temps faut-il pour mettre Exchange Server en mode maintenance ?+
Le processus prend généralement 15 à 30 minutes selon la complexité de votre environnement et la taille des files d'attente de messages. La vidange de HubTransport peut prendre 5 à 10 minutes, la redirection des messages 5 à 15 minutes supplémentaires, et les opérations DAG 5 à 10 minutes. Prévoyez toujours du temps supplémentaire pour les étapes de vérification et la surveillance de la vidange des files d'attente avant de procéder aux tâches de maintenance réelles.
Puis-je mettre Exchange Server en mode maintenance sans affecter le flux de courrier ?+
Oui, lorsqu'il est effectué correctement avec plusieurs serveurs Exchange. Le processus de mode de maintenance redirige les messages vers d'autres serveurs en bon état, assurant ainsi un flux de courrier continu. Cependant, vous avez besoin d'au moins un autre serveur Exchange pour gérer la charge redirigée. Les environnements à serveur unique connaîtront une interruption du flux de courrier pendant la maintenance.
Que se passe-t-il si je saute l'étape de vidange de HubTransport en mode de maintenance Exchange ?+
Ignorer le drainage de HubTransport peut entraîner une perte de messages et des retards de livraison. De nouveaux messages continueront d'arriver sur le serveur même après l'avoir mis hors ligne, ce qui peut potentiellement causer des arriérés de files d'attente et des échecs de livraison. Toujours drainer HubTransport en premier pour assurer une gestion des messages en douceur et une redirection vers des serveurs en bon état.
Comment dépanner le mode de maintenance d'Exchange Server si les commandes échouent ?+
Les problèmes courants incluent des autorisations insuffisantes, des conflits de version PowerShell et des problèmes de connectivité de cluster. Assurez-vous d'exécuter Exchange Management Shell en tant qu'administrateur avec le rôle de gestion de l'organisation. Utilisez PowerShell 5.1 au lieu de PowerShell 7 pour la compatibilité. Pour les environnements DAG, vérifiez que les services de cluster sont en cours d'exécution et qu'il existe une connectivité réseau entre les nœuds avant de tenter les commandes de mode de maintenance.
Le mode de maintenance d'Exchange Server est-il différent pour les environnements hybrides avec Office 365 ?+
Le processus de mode de maintenance principal reste le même pour les environnements hybrides, mais vous devez surveiller le flux de courrier vers Office 365 pendant la maintenance. Les connecteurs hybrides peuvent acheminer les messages via vos serveurs sur site, assurez-vous donc que votre topologie de routage de courrier peut gérer le serveur étant hors ligne. Testez le flux de courrier entre les boîtes aux lettres sur site et dans le cloud après avoir terminé la maintenance pour vérifier la connectivité hybride.

Discussion

Partagez vos réflexions et analyses

Connectez-vous pour participer