Edition du fichier DeployWiz_Initialization.vbs
Il y a quelques temps, je vous faisais part de la sortie du Wizard Editor sur CodePlex. Voici un exemple de personnalisation du Wizard avec cet outil.
l'idée est d'ajouter un panneau vous permettant de positionner une variable "ROOM" que l'on choisirait dans une liste déroulante. de plus, l'idée est de maintenir le contenu de cette liste déroulante dans un fichier XML sur le distribution share. voici le résultat attendu
Pour arriver à ce résultat voici les étapes :
pour cela je vais utiliser le wizard Editor de Michael Niehaus de la manière suivante :
j'ouvre le fichier puis dans la partie gauche, je clique sur "add" pour ajouter un écran appelé "ROOMS", puis dans la partie droite, je clique sur add pour ajouter 3 clauses :
puis pour chacune des clauses j'entre les détails suivants
dans l'onglet HTML j'entre le code HTML suivant :
<h1>Select a Room</h1>
<p>In order to deploy Windows Vista on your computer, we need to know where the computer will be shipped.</p>
<u>R</u>oom:<br/> <select id=RoomList class=WideEdit datasrc="#Rooms" datafld="Description" accesskey=r> <option value="" >Select a room:</option> </select>
<INPUT type="hidden" id=ROOM Name=ROOM />
afin que la clause "Initialization" remplisse le contenu de la liste déroulante en fonction du contenu du fichier ROOMS.xml, il faut éditer le fichier DeployWiz_Initialization.vbs et y rajouter la fonction InitializeRooms que nous avons délarée plus haut.
voici la fonction InitializeRooms que j'utilise
Function InitializeRooms
Dim oItem Dim oOption Set oXMLSiteData = nothing
' Load the Site Configuration XML file. Set oXMLSiteData = oUtility.CreateXMLDOMObjectEx( property("DeployRoot") & "\control\ROOMS.xml" )
For each oItem in oXMLSiteData.selectNodes("//rooms/room") Set oOption = document.createElement("OPTION") oOption.Value = oItem.selectSingleNode("ID").text oOption.Text = oItem.selectSingleNode("Name").text RoomList.Add oOption Next End Function
à rajouter n'importe où dans le fichier
Edition du fichier DeployWiz_Validation.vbs
Afin que la clause "Validation" ne permette le passage à l'écran suivant uniquement si l'utilisateur à choisi une salle, il faut éditer le fichier DeployWiz_Validation.vbs et y rajouter la fonction ValidateRooms déclarée plus haut
Function ValidateRooms
if SiteList.Value <> "" then oEnvironment.Item("ROOM") = RoomList.Value ValidateRooms = true else ValidateRooms = false end if End function
Création du fichier ROOMS.xml
Dans la fonction InitializeRooms, je cherche le fichier ROOMS.xml dans le sous répertoire "control" du déployroot. Voici le contenu du fichier dont je me sers en exemple :
<rooms> <room> <ID>RH1</ID> <Name>Bureau RH 1</Name> </room> <room> <ID>RH2</ID> <Name>Bureau RH 2</Name> </room> <room> <ID>IT1</ID> <Name>Bureau IT 1</Name> </room> </rooms>
Enfin, déclaration la variable ROOM dans le customsettings.ini
pour que la variable "ROOM" soit prise en compte, il faut la déclarer dans le customsettings.ini de votre deployment point comme ci dessous :
[Settings] Priority=Default Properties=ROOM
[Default] OSInstall=Y
Et voila, la variable ROOM est maintenant utilisable dans une séquence de tâche ou dans des scripts de déploiement.