Powershell – Monitorer une liste de serveurs

 

Ce script développé dans le cadre d’un projet, permet de monitorer une liste de serveurs web IIS sous Windows. Il pourrait adresser une ferme de serveurs web,  sharepoint ou une infra Exchange.

Il tourne en boucle (rafraichissement des données toutes les 10 sec par defaut) et effectue les tests suivants sur une liste de serveurs figurant dans un fichier servers.txt.

  • Ping
  • Etat du port http
  • Nombre de connexions IIS actives
  • Utilisation Cpu

Ce script doit être considéré comme une base de travail, charge à vous de l’enrichir et d’y ajouter les éléments manquants.

Quelques rappels de base :

Ping  :

La variable $ping renverra $True si l’ordinateur $host est joignable et $False le cas échéant.

Cpu : 

Cette ligne de code récupère la valeur du Compteur de performance “\Processor(_Total)\% Processor Time” qui renseigne sur le taux d’occupation cpu.

La commande de base exécutée sans froufrou sur mon ordinateur donne :

Connections Actives :

Il s’agit du nombre de connections actives sur le serveur web IIS. On récupère pour cela la valeur du Compteur de performance “\Web Service(_Total)\Current Connections”.

Note : le fichier servers.txt doit être présent dans le même répertoire que le script.

Voici le code source complet :