PI Services

Le blog des collaborateurs de PI Services

PowerShell - Générer un rapport au format HTML (2/2)

Contexte

Cet article a pour objectif de fournir les principales commandes PowerShell afin de créer un rapport, qui, exécuté avec une tâche planifiée, permet de générer automatiquement un rapport HTML envoyé par mail.

Dans cette série de deux articles, nous verrons comment créer deux scripts PowerShell qui permettent de remonter les principales informations pour :

  • Une liste d’un ou plusieurs serveurs HYPER-V,
  • Les machines virtuelles présentes sur un ou plusieurs serveurs HYPER-V.

Compatibilité :

Les scripts présentés dans cette série ont étés testés sur :

  • HYPER-V pour Windows Server 2012R2
  • HYPER-V pour Windows Server 2012

Dans l’article précédent nous avons vu comment utiliser PowerShell pour générer un fichier HTML. Cet article présenteras les principales commandes PowerShell pour la génération d’un rapport affichant les principales informations des VMs ainsi que des Hyperviseurs.

Créer la liste des serveurs

Afin de préciser le noms des hyperviseurs qui seront interrogés, sans entrer leur noms en dur dans le script – ce qui obligerais à modifier lors de l’ajout ou la modification de serveurs cible – nous passerons par un fichier texte qui seras utilisé par le script. Chaque ligne du fichier contient le nom d’un serveur :

image

 

 

 

 

 

Afin de charger le contenu du fichier texte, il suffit d’en spécifier l’emplacement dans une variable :

image

 

Pour utiliser le fichier dans une boucle, il faut utiliser la commande “Get-Content” :

image

Récupérer les informations des VMs

La fonction “retrieve_virtualmachine_informations” permet pour une VM ($vmname_) et un hyperviseur ($server_) donné de récupérer les informations suivantes :

  • Nom de la VM,
  • Nom de l’hyperviseur,
  • Nombre de vcpu,
  • Informations de la RAM,
  • Nombre d’interfaces réseau,
  • Nombre de disques,
  • Temps d’activité de la VM,
  • Etat de la VM,
  • Délai de démarrage de la VM.

Voici la fonction :

image

Récupérer les informations des hyperviseurs

 

Informations générales :

Récupérer le temps d’activité de la machine :

image

Récupérer les informations de la commande “Systeminfo” et convertir au format CSV avec la fonction “Get-SystemInfo” :

image

Cette fonction seras ensuite utilisée pour récupérer le nom de la machine et son modèle :

image

RAM :

La fonction “Get-SystemInfo” est également utilisée pour récupérer les informations de mémoire disponible et maximum :

image

Disques :

Cette commande permet de récupérer tous les disques :

image

Une fois tous les disques récupérés, il faut pour chaque disque récupérer ses informations :

imagev

Créer les bornes d’avertissement

Afin de disposer d’un rendu visuel permettant de rapidement identifier un problème sur un serveur, il est possible (à l’aide de balises HTML) de colorier des cellules en fonction de la valeur contenue. Cela permet par exemple de rapidement identifier un serveur avec un faible stockage restant ou bien peu de RAM :

image

Tout d’abords, il faut créer les variables contenant la valeur des bornes :

image

Ensuite, lors de la génération du code HTML, il faut sous PowerShell, avec le switch “if” vérifier les trois différents cas (OK, Warninig et Critique), puis à l’aide de la balise HTML “bgcolor” préciser la couleur de la cellule :

image

Ajouter un commentaire

Loading