16/12/2024

Exchange Server

Health Checker : vérifier l’état de santé de ses serveurs Exchange On-Premise

I. Présentation

Dans ce tutoriel, nous allons découvrir l'un des scripts disponible sur le GitHub officiel de Microsoft : Health Checker. Health Checker est un script PowerShell simple d’utilisation qui permet de réaliser un audit de conformité des serveurs Exchange.

Grâce à au script healthchecker.ps1, il est possible en moins d’une heure de vérifier certains points cruciaux relatifs au bon fonctionnement et à la sécurité de vos serveurs de messagerie Exchange. Un rapport sera généré suite à l'exécution du script.

Exchange - Resumé scan health checker

Par exemple, êtes-vous protégés contre les dernières CVE ? Avez-vous installé les dernières mises à jour Exchange ?

Exchange - Health Checker - Liste des CVE

Les dernières actualités nous montrent l’importance de maintenir à jour son infrastructure serveurs et applicatives.

Vous constatez des lenteurs sur votre infrastructure malgré les ressources à votre disposition ? Avez-vous bien appliqué les recommandations de bases de Microsoft pour une infrastructure Exchange ?

Exchange - Recommandation health checker

Mais aussi d’autres points sur les composants, le système, les mises à jour et la configuration. Voici une liste non exhaustive des points vérifiés :

  • Indiquer si vous avez bien la dernière Cumulative Update ou Security Update d’installée
  • La bonne version de .NET Framework, Visual C++
  • Si vos serveurs sont en mode maintenance ou en attente d’un redémarrage
  • Des clés de registre mal configurées comme le TCPKeepAlive ou des clés non configurées qui peuvent être exploitées
  • L’état de votre configuration
  • Si le SMB1 est installé et/ou bloqué
  • Si l’Extended Protection est activée

Si vous avez des doutes sur l'état de votre Exchange suite à la lecture de cette présentation, alors suivez le tutoriel ! Et si vous n’avez pas de doutes, une vérification vous prendra moins d’une heure...

II. Prérequis

Le script est compatible avec les versions suivantes : Exchange 2013, 2016 et 2019. Il est fonctionnel sur Exchange 2007 et Exchange 2010 mais n’est pas pris en charge.

Un compte administrateur local sur les serveurs Exchange et également membre du groupe Organization Management.

III. Utilisation du script

Les commandes utilisées dans la suite de cet article sont à lancer dans une console PowerShell en administrateur.

A. Télécharger le script

Le mieux est d’aller chercher le script directement à la source, sur le GitHub, pour s’assurer d’avoir la dernière version fournie par l’équipe Microsoft.

Exchange - Telecharger Health Checker

Une fois téléchargé, vous n’avez plus qu’à le mettre sur un serveur Exchange dans un dossier, par exemple "C:\script" ou "C:\Temp".

B. Vérifier la signature

On vérifie la signature du script à l’aide de la commande suivante :

Get-AuthenticodeSignature -FilePath "C:\temp\HealthChecker.ps1" | ft -AutoSize

Si le résultat vous indique que la signature est valide, vous pouvez passer à la suite.

Exchange - Verifier signature du script

C. Générer un rapport

En vous plaçant dans le dossier contenant le script HealthChecker.ps1, il vous faudra exécuter le script en ciblant le serveur souhaité. La commande ci-dessous cible le serveur "Win16-Exch-1".

.\HealthChecker.ps1 -Server "Win16-Exch-1"

On peut en générer un pour chacun de nos serveurs. Cette seconde commande cible "Win16-Exch-2".

.\HealthChecker.ps1 -Server "Win16-Exch-2"

Cela va produire un rapport format HTML et un XML par serveur.

Exchange - Rapports individuels

D. Fusionner un rapport

Pour améliorer la lecture de nos rapports, il est possible de les fusionner. Voici la commande à utiliser :

.\HealthChecker.ps1 -BuildHtmlServersReport

Ainsi, dans un seul fichier HTML, on aura une synthèse globale de nos serveurs Exchange.

Exchange - Rapport general

E. Auditer en une commande !

En vous plaçant dans le dossier contenant le script HealthChecker.ps1, il vous suffit d’utiliser la commande suivante qui va générer un rapport pour chaque serveur Exchange et fusionner le tout pour l’ouvrir dans un navigateur web.

Get-ExchangeServer | ForEach-Object {.\HealthChecker.ps1 -Server $_.Name}; .\HealthChecker.ps1 -BuildHtmlServersReport; .\ExchangeAllServersReport.html

IV. Conclusion

Avec cet outil supplémentaire, il ne tient qu’à vous de réaliser l’audit de vos serveurs Exchange pour vous assurer de leur état de santé.

Maintenant que vous avez cette astuce en main, il ne reste plus qu’à réfléchir à comment vous allez pouvoir l’utiliser. Vous pouvez l’utiliser ponctuellement avant ou après l’installation de mises à jour, l’installation d’un nouveau DAG ou l’ajout d’un serveur supplémentaire. Mais vous pouvez aussi l’améliorer en le planifiant.

Un rapport hebdomadaire ? Une alerte en cas de ligne rouge dans le rapport ? On attend vos retours en commentaires😉

author avatar
Matthieu PARROT
Jeune ingénieur informaticien qui veut apporter à internet comme internet lui a apporté.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.