Unleash the Power of MDT2010/2012 – Part 9 : UserExit Scripts

Publié le 27 décembre 2011 par Diagg @diagg

Il est possible d’ajouter vos propres fonctionnalités à la séquence customsettings.ini d’MDT. Pour cela il existe la fonction UserExit.

Cette fonction permet d’utiliser des scripts qui interagissent avec Customsettings.ini, c’est-à-dire qu’ils peuvent récupérer les variables de customsettings.ini, mais également les modifier. Et en sens inverse Customsettings.ini peut appeler directement les nouvelles fonctionnalités contenues dans le script UserExit est en récupérer les résultats.

A quoi cela peut-il servir ?

  • Toute les opérations qui nécessite d’effectuer des tests avant de savoir si on va ’installer tel ou tel composant peuvent se faire via cette fonctionnalité.

  • Toutes opérations qui a besoin d’effectuer un traitement spécial sur une chaine de caractère, d’aller lire ou écrire dans un fichier peuvent également se faire via UserExit.

  • Tout ce que vous pouvez imaginer !

Voici quelque exemple glanés sur le net :

Michael Niehaus l’utilise pour retrouver les différents types de modelés de la marque Lenovo qui ne sont jamais identique pour un même model.

Michael Murgolo l’utilise pour récupérer le fuseau horaire défini sur une machine source afin de configurer ce même paramètre sur la machine de destination.

Chris Nackers l’utilise pour choisir entre différentes Task Sequence en fonction de la quantité de ram trouvée.

Johan Arwidmark l’utilise pour modifier dynamiquement le serveur WDS auquel il doit se connecter.

Pour l’implémenter, ajouter la commande suivante dans vos rules(customsettings.ini) :

UserExit = MyCustomscript.vbs

MyCustomeScript.vbs étant un script dans lequel vous avez créé une ou des fonctions que vous appelez directement depuis les rules en y ajoutant des ‘#’.

Imaginons que votre script comprenne une fonction nommé ModifyComputerName() dont le but serait de couper tout nom qui ferait plus de 8 caractères, elle sera appelable simplement de la façon suivante MaVariable=#ModifyComputerName()#

Evidement, comme c’est une fonction, vous pouvez y passer des paramètres, et notamment n’importe quel variable d’MDT en y ajoutant des ‘%’. Ce qui donne par exemple MaVariable=#ModifyComputerName(%OSDComputerName%)#

Le résultat retourné par la fonction peut être utilisé pour modifier directement une variable d’MDT, dans notre cas, nous pourrions écrire ceci dans les rules pour que le nom modifié soit pris en compte : OSDComputerName=#ModifyComputerName(%OSDComputerName%)#

Enfin, vous pouvez passer directement une commande vbscript au sein de vos rules en la mettant entre des ‘#’ : OSDComputerName=#Left("%OSDComputerName%", 4)#

Voila, vous connaissez maintenant les principales fonctionnalités des scripts UserExit. Je vous parlerez dans le prochain épisode de ce qu’ MDT est capable de faire avec WinPE.