Powershell et le Monitoring MDT

Introduction

Microsoft Deployment Toolkit (MDT) est une solution complète pour déployer vos postes de travail. Une de ses fonctionnalités, nommée Monitoring, permet d’analyser en temps réel les déploiements en cours depuis votre serveur. Vous pouvez, de ce fait, voir les PC en cours d’installation, installés avec succès ou échec ou ceux pour lesquels le déploiement ne s’est pas déroulé correctement.

L’un des grands atouts de MDT est que l’on peut pratiquement tout automatiser et réutiliser avec PowerShell.

Dans la suite de cet article, nous allons voir comment analyser vos déploiements d’abord via l’interface de MDT (1) pour ensuite utiliser PowerShell pour le faire.

Nous verrons comment utiliser le monitoring depuis n’importe quel PC ayant accès au serveur, et sans forcément avoir MDT installé (2). Nous verrons ensuite comment recevoir des notifications (notification Windows 10, mail, GUI WPF, Cortana) concernant vos déploiements en cours (déploiement terminé, échec). Nous verrons enfin différentes manières (Outil de monitoring MDT en PowerShell, report web) permettant de lister les déploiements en cours depuis votre serveur.

1 / Le Monitoring dans MDT

Avant de voir comment procéder avec PowerShell, nous allons d’abord voir, comment l’utiliser via le Deployment Workbench de MDT.

a) Activation du Monitoring

La 1ère étape, comme vous devez vous en doutez, est d’activer le Monitoring. Pour cela procédez comme ci-dessous :

  1. Ouvrez le Deployment Workbench
  2. Clic droit sur votre Deployment Share puis cliquez sur Propriétés
  3. Allez dans le dernier onglet, Monitoring.
  4. Activer le monitoring en cochant la case « Enable monitoring for this deployment share »
  5. La partie Monitoring host vous permettra d’accéder à la liste des déploiements

b) Vérification du Monitoring

    1. Ouvrez votre Customsettings.ini
    2. La variable, EventService, ci-dessous devrait y figurer
    3. Dans la barre de recherche Windows, tapez : services.msc
    4. Vérifier que le service Microsoft Deployment Toolkit Monitor service est présent et non arrêté

c) Contenu du Monitoring

Dans MDT

Nous pouvons dorénavant accéder à la liste des déploiements en cours depuis le serveur.

Depuis le Deployment Workbench, cliquez sur Monitoring.

La liste des déploiements devrait s’afficher

Depuis le Web

L’un des avantages du Monitoring est que l’on peut y accéder via un lien Web.

Pour cela cliquez sur le lien ci-dessous, en remplaçant MyHost par votre Monitoring Host. http://MyHost:9801/MDTMonitorData/Computers

Je vous l’accorde ce n’est pas très compréhensible et design. Nous verrons dans la partie 3, comment créer de jolis reports Web, aperçu ci-dessous :

2 / Le Monitoring depuis Powershell

Le Monitoring est une super option, mais cela peut être encore mieux si l’on peut accéder à la liste des déploiements depuis n’importe quel PC et ce, sans avoir MDT sur le PC.
Il suffit de réutiliser le lien mentionné plus haut avec votre Monitoring Host.

Ok ce n’est pas très beau, rendons-le un peu plus compréhensible avec PowerShell.

Pour cela utilisez la fonction, Get_My_MonitoringData, ci-dessous (cette partie sera réutilisée dans les tous les exemples de la suite de l’article) :

Dans PowerShell cela nous donne :

 

a) Etre informé de ses déploiements

Dans cette partie nous allons voir, comment utiliser PowerShell pour être informé de l’état de ses déploiements sans avoir à regarder la liste tout le temps, ni ouvrir MDT.

Ci-dessous, le script utilisé pour analyser mes déploiements :

Le principe est simple, nous allons, à partir du script ci-dessus, analyser le déploiement de la machine toto tant que le pourcentage n’est pas à 100%.

– Si le statut du déploiement renvoie la valeur Unresponsive (valeur égal à 4), nous affichons un certain message.
– Si le statut du déploiement renvoie la valeur Failed (valeur égal à 2), nous affichons un certain message.
– Si le statut du déploiement renvoie la valeur Success (valeur égal à 3), nous affichons un certain message.

Que veulent dire ces valeurs ?

  • Success (3) è Vous l’aurez compris cela veut dire que le déploiement s’est terminé avec succès
  • Failed (2) è Cela veut dire qu’il y a eu une erreur durant le déploiement
  • Unresponsive (4) è Cela veut dire que le statut n’a pas été établi pendant plus de 4 heures.

Maintenant que nous avons vu la base de ce système, nous allons utiliser plusieurs méthodes pour être informé.

!!! Attention, si vous fermez le script l’analyse du déploiement ne pourra pas se faire

Ci-dessous les scripts de notification à copier dans le script d’analyse.

Par une simple notification Windows

Ci-dessous un aperçu de la notification Windows 1O en cas de succès ou d’échec.

Vous trouverez ici, une vidéo que j’avais réalisé sur ce type de notification.

Ci-dessous la partie à copier à la place de # COPIER LE SCRIPT DE NOTIFICATION ICI

 

Par Cortana

Ci-dessous la partie à copier à la place de # COPIER LE SCRIPT DE NOTIFICATION ICI

 

Par une interface graphique WPF

Ci-dessous un aperçu de la notification en WPF en cas de succès ou d’échec.

Vous trouverez ici, une vidéo que j’avais réalisé sur ce type de notification.
Ci-dessous la partie à copier à la place de # COPIER LE SCRIPT DE NOTIFICATION ICI

 

Par mail

Ci-dessous un aperçu de la notification en mail en cas de succès ou d’échec.


Ci-dessous la partie à copier à la place de # COPIER LE SCRIPT DE NOTIFICATION ICI

 

b) Monitoring Web

Comme vu précédemment, la sortie Web native n’est pas très claire et « user-friendly ».
Réutilisons le code PowerShell et rendons le plus joli.

Pour cela il suffit de sortir notre résultat sous forme de page Web.

Ci-dessous le résultat :

Ok, ce n’est pas encore ça, allons plus loin.

Un peu de CSS

Avec le Web tout peut changer avec un peu de CSS. Par exemple afficher des couleurs différentes en cas de succès, échecs…

Ci-dessous le résultat :

Ci-dessous le code PowerShell utilisé :

 

Ci-dessous le contenu du fichier CSS :

Bootstrap

Les pages Web peuvent être facilement customisées avec du CSS mais également avec du Bootstrap, qui utilisera du CSS directement depuis le Web. Plus d’infos sur le bootstrap ici.

Nous allons maintenant améliorer encore le report en ajoutant les parties ci-dessous:

1 / Couleurs par statut de déploiement

2 / Badges qui indiquent le nombre de machines en cours d’installation, échec, succès.

Message d’alerte personnalisable

Bien entendu, seul le message approprié s’affiche :

– Si tous les déploiements sont en succès, l’alerte de succès s’affiche.
– Si tous les déploiements sont en cours, l’alerte d’info s’affiche.
– Si au moins un déploiement est en échec, l’alerte d’échec s’affiche
– Si aucun déploiement n’est trouvé, l’alerte no monitoring data s’affiche

3 / Barre de recherche pour chercher un élément particulier (ordinateur, en succès, en échec…).

Ci-dessous le script utilisé

 

c) Outil de Monitoring en PowerShell

Vous trouverez à cette adresse un outil en PowerShell, que j’ai développé et qui permet de :

– Saisir votre Monitoring Host et s’en souvenir
– Lister les déploiements en cours
– Lancer un timer qui permettra de rafraichir la liste toutes les 10 secondes
– Afficher les propriétés d’un déploiement
– Configurer la partie envoi de mail (avec envoi de mail test)
– Recevoir une notification de déploiement par mail ou WPF
– Se connecter à distance (mstsc) sur la machine
– Accéder aux logs d’une machine
– Exporter la liste de vos déploiements en format CSV

Ci-dessous l’interface principale de l’outil.

A quoi servent les boutons de la barre de titre ?

– Le 1er bouton permet de rafraîchir une fois la liste des déploiements
– Le 2nd permet de rafraîchir automatiquement toutes les 10secondes
– Le 3ème boutons permet de configurer la partie mail, voir ci-dessous:

– Le 4ème bouton permet de lister vos déploiements en format CSV

A quoi servent les boutons ci-dessous ?

Affichage des propriétés d’une machine


Notification mail ou GUI

d) Module MDTMonitor sur PSGallery

Un module que j’ai développé est également présent sur la PowerShell Gallery.

Pour l’installer, dans PowerShell tapez : install-module MDTMonitor

Ce module permet de :

– Lister vos déploiements en format Web et Bootstrap (modèle partie)
– Lancer l’analyse de déploiement d’une machine et de recevoir une notification
– Mail
– Notification Windows
– Via une interface graphique
– Par Cortana

Pour l’utiliser voir ci-dessous :

1 / Tapez la commande : mdtmonitor.
2 / Entrez ensuite votre Monitoring host lorsque celui-ci est demandé
Vous pouvez tapez également mdtmonitor -myhost:”yourhost”
Si vous souhaitez garder en mémoire le host tapez, mdtmonitor -myhost:”yourhost” -remember

3 / Choisissez ce que vous voulez faire, parmi les choix ci-dessous :

Report Web

Pour lister les déploiements en cours sur votre serveur (Monitoring Host), tapez 1. Vos déploiements vont alors s’afficher sous forme de report Web, comme ci-dessous :

 

Etre informé

Pour être informé du déploiement d’une machine, tapez 2

Choisissez l’ordinateur pour lequel vous souhaitez recevoir une notification parmi la liste :

Choisissez le type de notification souhaité :

Le script d’analyse va commencer et analyser le déploiement du PC, ne fermez pas l’invite de commande PowerShell.

Lorsque le déploiement sera terminé en succès ou échec vous recevrez une information utilisant le mode de notification sélectionné.

 

 

 

About the Author

Damien VAN ROBAEYS

No Comments

Laisser un commentaire

This blog is kept spam free by WP-SpamFree.