Exchange troubleshooting : diagnostiquer un serveur avec les outils Microsoft
Avant de chercher une solution sur un forum, quelques commandes documentées par Microsoft disent si le problème vient des mises à jour, des services, du flux de messagerie ou de la réplication.
Un serveur Exchange en panne présente souvent les mêmes symptômes : courrier bloqué, Outlook déconnecté, services arrêtés après une mise à jour. Cette page rassemble les outils de diagnostic que Microsoft documente, dans un ordre qui va du plus général au plus précis. Les commandes se lancent dans l'Exchange Management Shell ; aucune ne modifie la configuration.
Si l'ancienne version de cette page visait Exchange 2016, rappelons que son support étendu a pris fin le 14 octobre 2025 : un serveur 2016 hors du programme de mises à jour étendues ne reçoit plus de correctifs, ce qui est en soi le premier problème à traiter. Les outils ci-dessous s'appliquent à Exchange 2019 et à Exchange Server SE.
1. Le serveur est-il à jour ?
Beaucoup de pannes viennent d'une mise à jour incomplète. Pour connaître la version réellement installée, Microsoft recommande en premier le script Exchange Health Checker : il affiche le numéro de build, la dernière mise à jour installée et les correctifs détectés. L'équipe Exchange l'utilise aussi pour savoir si un serveur est en retard sur ses mises à jour cumulatives ou de sécurité, ou sur une action manuelle. Récupérez-le depuis le lien de la page Microsoft Learn des numéros de build et suivez sa documentation.
Sans le script, Microsoft documente deux commandes. La première donne la version exacte, mise à jour de sécurité comprise ; la seconde, seulement la mise à jour cumulative (CU) :
Get-Command Exsetup.exe | ForEach-Object {$_.FileVersionInfo}
Get-ExchangeServer | Format-List Name,Edition,AdminDisplayVersion
Comparez le résultat avec le tableau des numéros de build de Microsoft, qui change à chaque publication.
2. Les services tournent-ils ?
Test-ServiceHealth
Sans paramètre, la cmdlet teste le serveur local. Microsoft indique qu'elle renvoie une erreur pour tout service requis par un rôle installé, configuré en démarrage automatique et pourtant arrêté. Après une mise à jour, l'équipe Exchange signale qu'un service resté à l'état désactivé indique une installation interrompue.
Deux autres vues complètent ce contrôle :
Get-ServerComponentState -Identity ex01
Get-HealthReport -Identity ex01
La première liste l'état de chaque composant et point de terminaison d'Exchange. La seconde donne l'état de santé calculé par Exchange, parmi les valeurs Online, Partially Online, Offline, Sidelined, Functional ou Unavailable.
3. Le courrier circule-t-il ?
| Question | Commande documentée |
|---|---|
| Un message de test passe-t-il ? | Test-Mailflow |
| Des messages s'accumulent-ils ? | Get-Queue |
| Où est passé un message précis ? | Get-MessageTrackingLog |
Test-Mailflow vérifie que le serveur peut s'envoyer un message à lui-même ou en envoyer un à un autre serveur ; la valeur à lire est TestMailflowResult. Pour les files d'attente, l'exemple de Microsoft filtre celles qui dépassent un seuil :
Get-Queue -Filter "MessageCount -gt 100"
Adaptez le seuil à votre volume habituel. Pour suivre un message, interrogez le journal de suivi sur une plage horaire et un expéditeur :
Get-MessageTrackingLog -Server ex01 -Start "10/12/2026 08:00:00" -End "10/12/2026 18:00:00" -Sender "utilisateur@example.com"
Si le courrier Internet transite par un serveur Edge, il possède son propre journal de suivi et ses propres files ; la page sur le serveur de transport Edge explique aussi comment tester EdgeSync.
4. Les boîtes aux lettres répondent-elles ?
Test-MapiConnectivity -Server ex01
Microsoft explique que la cmdlet ouvre une session sur la boîte système de chaque base et lit la liste des éléments de la boîte de réception. Elle teste ainsi MAPI et LDAP, et vérifie indirectement la banque d'informations et l'accès à l'annuaire. Avec -Identity, elle teste une boîte aux lettres précise.
5. La réplication du DAG est-elle saine ?
Sur un serveur membre d'un groupe de disponibilité, Test-ReplicationHealth -Identity ex01 contrôle le cluster, le service de réplication, Active Manager, le quorum, le témoin et la redondance des bases. Get-MailboxDatabaseCopyStatus donne l'état de chaque copie. Le détail est dans la page sur le DAG Exchange.
6. Les journaux
- Installation et mises à jour :
<lecteur système>:\ExchangeSetupLogs\ExchangeSetup.loget le journal Application de Windows. - Haute disponibilité : dans l'Observateur d'événements, les canaux HighAvailability et MailboxDatabaseFailureItems d'Exchange.
- Mise à jour qui échoue : l'équipe Exchange oriente vers son script SetupAssist en cas d'erreur pendant ou après l'installation.
Un serveur non à jour est aussi un serveur vulnérable : la page sur la faille Exchange et ses correctifs explique les vérifications de sécurité. Pour une réinstallation propre, repartez du guide de déploiement d'Exchange Server, et retrouvez les autres guides dans la rubrique Exchange Server.
Questions fréquentes
Par où commencer un diagnostic Exchange ?
Par la version : Microsoft recommande le script Health Checker pour connaître le build installé et les mises à jour manquantes. Vérifiez ensuite les services avec Test-ServiceHealth, puis le flux de messagerie.
Comment savoir quelle mise à jour Exchange est installée ?
Le Health Checker l'affiche directement. Sinon, Get-Command Exsetup.exe donne la version exacte du fichier ExSetup.exe, mise à jour de sécurité comprise, à comparer au tableau des builds de Microsoft.
Que vérifie Test-ServiceHealth ?
Que tous les services Windows nécessaires aux rôles Exchange du serveur sont démarrés. Elle signale tout service requis, configuré en démarrage automatique, qui ne tourne pas.
Comment retrouver un message perdu dans Exchange ?
Avec Get-MessageTrackingLog, en filtrant par serveur, plage horaire, expéditeur ou destinataires. Le journal de suivi retrace le parcours de chaque message sur le serveur.
Où se trouve le journal d'installation d'Exchange ?
Dans le fichier ExchangeSetup.log du dossier ExchangeSetupLogs, à la racine du lecteur système. Le journal Application de Windows enregistre aussi les événements d'installation.