TP N°7 : Rapport de supervision multi-serveurs

Sophie pose le ticket qui synthétise toute la section 7 : « J’ai besoin d’un rapport unique qui vérifie, sur tous les serveurs de la liste, l’état d’un service critique et l’espace disque disponible. Je veux voir immédiatement lesquels sont dans le rouge, et lesquels sont injoignables. »

Objectif

Combiner Invoke-Command, la gestion d’erreurs par serveur (vue en 7.2) et le formatage de résultats (section 2) pour produire un rapport consolidé, lisible en un coup d’œil.

Ce TP suppose un petit lot de machines accessibles en Remoting (WinRM ou SSH, selon votre contexte, vu en 7.1). Si vous ne disposez que d’une seule machine pour tester, remplacez la liste de serveurs par "localhost" répété une ou deux fois : la logique du script reste identique.

Consignes

Étape 1 — Préparez un fichier serveurs.txt contenant un nom de serveur par ligne (au moins 2 ou 3, dont un volontairement invalide ou éteint pour tester la gestion d’erreur).

Étape 2 — Avec Invoke-Command, interrogez tous les serveurs de la liste en une seule commande pour récupérer : l’état du service Spooler, et le pourcentage d’espace libre sur le lecteur C:. Utilisez -ErrorAction SilentlyContinue et -ErrorVariable pour ne pas bloquer sur un serveur injoignable.
Indice : revoyez la leçon 7.2, notamment l’exemple combinant Get-Volume et un objet PSCustomObject.

Étape 3 — Affichez un résumé en tête de rapport : nombre total de serveurs interrogés, nombre de serveurs injoignables.

Étape 4 — Formatez le résultat final en tableau, avec les colonnes : nom du serveur, statut du service, pourcentage d’espace libre — trié pour faire apparaître en premier les serveurs avec le moins d’espace disque disponible.

Étape 5 (bonus) — Mettez en évidence dans le rapport (via une colonne supplémentaire ou un Write-Warning séparé) les serveurs où le service Spooler n’est pas démarré OU où l’espace disque libre est sous 20 %.

Solution commentée