Health Checker : vérifier l’état de santé de ses serveurs Exchange On-Premise
Sommaire
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.
Par exemple, êtes-vous protégés contre les dernières CVE ? Avez-vous installé les dernières mises à jour Exchange ?
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 ?
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.
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.
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.
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.
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😉