MDT Wizard : Afficher les informations systèmes pendant le déploiement
https://www.systanddeploy.com/2013/08/mdt-2012-afficher-les-informations.html
Pour cela vous aurez tout d'abord besoin de l'outil Wizard Editor, que vous pouvez télécharger ICI.
Si vous souhaitez pouvoir afficher les informations systèmes lors de votre déploiement par MDT, faîtes comme ci-dessous :
Ecran qui s'affiche sur un PC branché au secteur
Pour que tout cela fonctionne il faudra :
- I / Ajouter un pane SystemInfo
- II / Ajouter un pane SystemInfoDC
- III / Ajouter les fichiers .png dans Scripts
- IV / Mofidier le wizard.css
- V / Ajouter les requêtes WMI dans le fichier ZTIGather.wsf
- VI / Ajouter variable "SkipSystemInfo" dans le ZTIGather.xml
- VII / Faire un update de votre Deployment Share
Télécharger les wizards et les images
IV / Modification du wizard.css
Afin que les wizard s'affichent correctement, il va falloir modifier les wizard.css et ajouter les lignes ci-dessous :
#infos {
float:left;
}
#image {
float:right;
}
V / Ajout des requêtes WMI dans ZTIgather.wsf
Il faudra éditer avec Notepad ++, par ex, le fichier "ZTIGather.wsf " et faire comme ci-dessous :
Dans la fonction " GetAssetInfo "1 / Déclarer les variables " sSMBIOSBIOSVersion, sMTM, sComputerModel, sMemoryInfo "
2 / Modifier la requête "Memory" :
On divise le résultat par 1000 et on affiche les 3 premiers caractères pour avoir un affichage du type 3.4 Go.
If not IsNull(objInstance.TotalPhysicalMemory) then
sMemoryInfo = Trim((objInstance.TotalPhysicalMemory / 1024 /1024 /1000))
sMemoryInfo = Left(sMemoryInfo, 3) & " Go"
End if
2 / Ajouter les requêtes WMI suivantes :
Requête WMI pour obtenir la version du BIOS
Requête WMI pour obtenir le MTM du PC
Set objResults = objWMI.InstancesOf("Win32_ComputerSystemProduct")
For each objInstance in objResults
If not IsNull(objInstance.name) then
sMTM = Trim(objInstance.name)
End if
Next
If sMTM = "" then
oLogging.CreateEntry "Unable to determine MTM via WMI.", LogTypeInfo
End if
Requête WMI pour obtenir le modèle du PC
Set objResults = objWMI.InstancesOf("Win32_ComputerSystemProduct")
For each objInstance in objResults
If not IsNull(objInstance.name) then
sComputerModel = Trim(objInstance.version)
End if
Next
If sComputerModel = "" then
oLogging.CreateEntry "Unable to determine the computer model via WMI.", LogTypeInfo
End if
4 / Associer les variable utilisées à des objets utilisés dans les xml pour afficher le résultat de la requête :
oEnvironment.Item("SMBIOSBIOSVersion") = sSMBIOSBIOSVersion
oEnvironment.Item("name") = sMTM
oEnvironment.Item("ComputerModel") = sComputerModel
oEnvironment.Item("MemoryInfo") = sMemoryInfo
Dans la fonction "Function GetNetworkInfo"
1 / Déclarer la variable " dicSubnetMask "
2 / Initialiser la variable " Set dicSubnetMask = CreateObject("Scripting.Dictionary") "
3 / Ajouter la requête WMI pour afficher le masque de sous-réseau
If not (IsNull(objAdapter.IPSubnet)) then
For each sElement in objAdapter.IPSubnet
If sElement = "0.0.0.0" or Left(sElement, 7) = "169.254" or sElement = "" then
oLogging.CreateEntry "Ignoring IP Address " & sElement, LogTypeInfo
Else
If not dicSubnetMask.Exists(sElement) then
dicSubnetMask.Add sElement, ""
End if
oLogging.CreateEntry "IP Address = " & sElement, LogTypeInfo
End if
Next
End if
4 / Associer les variable utilisées à des objets utilisés dans les xml pour afficher le résultat de la requête :
oEnvironment.Item("SubnetMask") = dicSubnetMask
VI / Ajout variable SkipSystemInfo dans ZTIgather.xml
<property id="SkipSystemInfo" type="string" overwrite="false" description="Flag to skip the System informations wizard pane (if set to YES, default is blank)" />
<property id="SkipSystemInfoDC" type="string" overwrite="false" description="Flag to skip the System informations wizard pane (if set to YES, default is blank)" />
De ce fait si vous ne souhaitez pas que ce wizard s'affiche durant votre déploiement, il suffira d'intégrer la ligne "SkipSystemInfo=YES" dans votre "customsettings.ini".
VII / Update du Deploymentshare
Faîtes un clic droit sur votre Deploymentshare puis choisissez Update puis faire comme ci-dessous..
Vous l'aurez donc compris, vous pouvez afficher toutes les infos que vous voulez, à condition qu'elles soient référencées dans le fichier ZTIGather.wsf.
Voici d'autres liens permettant de créer d'autres Wizards :
Set objResults = objWMI.InstancesOf("Win32_BIOS")
For each objInstance in objResults
If not IsNull(objInstance.SMBIOSBIOSVersion) then
sSMBIOSBIOSVersion = Trim(objInstance.SMBIOSBIOSVersion)
End if
Next
If sSMBIOSBIOSVersion = "" then
oLogging.CreateEntry "Unable to determine serial number via WMI.", LogTypeInfo
End if
Requête WMI pour obtenir le MTM du PC
Set objResults = objWMI.InstancesOf("Win32_ComputerSystemProduct")
For each objInstance in objResults
If not IsNull(objInstance.name) then
sMTM = Trim(objInstance.name)
End if
Next
If sMTM = "" then
oLogging.CreateEntry "Unable to determine MTM via WMI.", LogTypeInfo
End if
Requête WMI pour obtenir le modèle du PC
Set objResults = objWMI.InstancesOf("Win32_ComputerSystemProduct")
For each objInstance in objResults
If not IsNull(objInstance.name) then
sComputerModel = Trim(objInstance.version)
End if
Next
If sComputerModel = "" then
oLogging.CreateEntry "Unable to determine the computer model via WMI.", LogTypeInfo
End if
4 / Associer les variable utilisées à des objets utilisés dans les xml pour afficher le résultat de la requête :
oEnvironment.Item("SMBIOSBIOSVersion") = sSMBIOSBIOSVersion
oEnvironment.Item("name") = sMTM
oEnvironment.Item("ComputerModel") = sComputerModel
oEnvironment.Item("MemoryInfo") = sMemoryInfo
Dans la fonction "Function GetNetworkInfo"
1 / Déclarer la variable " dicSubnetMask "
2 / Initialiser la variable " Set dicSubnetMask = CreateObject("Scripting.Dictionary") "
3 / Ajouter la requête WMI pour afficher le masque de sous-réseau
If not (IsNull(objAdapter.IPSubnet)) then
For each sElement in objAdapter.IPSubnet
If sElement = "0.0.0.0" or Left(sElement, 7) = "169.254" or sElement = "" then
oLogging.CreateEntry "Ignoring IP Address " & sElement, LogTypeInfo
Else
If not dicSubnetMask.Exists(sElement) then
dicSubnetMask.Add sElement, ""
End if
oLogging.CreateEntry "IP Address = " & sElement, LogTypeInfo
End if
Next
End if
4 / Associer les variable utilisées à des objets utilisés dans les xml pour afficher le résultat de la requête :
oEnvironment.Item("SubnetMask") = dicSubnetMask
VI / Ajout variable SkipSystemInfo dans ZTIgather.xml
<property id="SkipSystemInfo" type="string" overwrite="false" description="Flag to skip the System informations wizard pane (if set to YES, default is blank)" />
<property id="SkipSystemInfoDC" type="string" overwrite="false" description="Flag to skip the System informations wizard pane (if set to YES, default is blank)" />
De ce fait si vous ne souhaitez pas que ce wizard s'affiche durant votre déploiement, il suffira d'intégrer la ligne "SkipSystemInfo=YES" dans votre "customsettings.ini".
VII / Update du Deploymentshare
Faîtes un clic droit sur votre Deploymentshare puis choisissez Update puis faire comme ci-dessous..
Vous l'aurez donc compris, vous pouvez afficher toutes les infos que vous voulez, à condition qu'elles soient référencées dans le fichier ZTIGather.wsf.
Voici d'autres liens permettant de créer d'autres Wizards :
- Mise à jour du BIOS via MDT (Mikael Nystrom)
- Choisir son customsettings.ini au début du déploiement (idboxes)
- Gérer un système de nommage spécifique des machines (Eric Schloss)
- Installer en fonction de certains modèles de PC (Zany&Openeyes)
- Gérer la complexité des mots de passe admin (Zany&Openeyes)
- Afficher les infos via BGInfos dans WinPE (Andrew Barnes)
- Sécuriser le déploiement à l'aide d'un code PIN (Mikael Nystrom)
- Ajouter un panel pour choisir son profil de drivers (Martin Schumacher)
4 commentaires
Cool Damien !!!! :)
Bon, juste un petit commentaire comme d'hab.
Le MTM, c'est une spécificité de Lenovo, chez d'autres constructeurs (genre HP ou Dell), ça n'existe pas.
Et pour trouver le modèle (au moins chez Dell) il faut attaquer Win32_ComputerSystem et non pas Win32_ComputerSystemProduct.
Voili.
En tout cas, beau travail.
Ah oui et aussi, tu n'explique pas comment tu fais disparaitre le "Next" quand le PC n'est pas alimenté ?
Merci Fredo,
C'est vrai pour le MTM, à force de bosser sur du Lenovo on oublie les autres :-)
Je comprends pas trop pour le next, tu veux dire pourquoi y'a pas le bouton ?
Oui c'est ça.
A moins que ça soit ta capture d'écran, on a la sensation que le bouton Next n'est pas là tant que les pré requis (sur batterie) ne sont pas respectés.
Oui en fait j'ai rogné la capture d'écran :-)
Enregistrer un commentaire