FOG est un outil formidable pour le déploiement de poste client que j’utilise en milieu professionnel. J’aurais envie de dire qu’il ne lui manque que la parole, mais non : il ne lui manque que la gestion des drivers
Devant un parc d’ordinateur plutôt hétérogène je ne pouvais pas mettre tous les drivers dans mon image. Je les donc déporté sur un partage réseau et j’ai utilisé DPInst (du Windows Driver Kit) dans un petit script VBS maison. Ce script est lancé automatiquement après le déploiement du poste grâce à sysprep.
Scénario du script :
-
Monte \\monserveur.mondomaine.lan\drivers en lecteur réseau (partage en lecture seul avec simplement les drivers
-
Recherche le répertoire du même nom que le “ComputerSystem Model”, que vous pouvez obtenir avec la commande « wmic computersystem get model » (ex : OptiPlex 380)
-
Copy les drivers en local (car en cas d’installation des drivers de la carte réseau ça coupe…)
-
-
Démonte le lecteur réseau
Noter qu’il faut au minimum que la carte réseau soit reconnu par Windows pour que le script fonctionne.
' David Mercereau - Institut Saint-Dominique de saint-herblain Juin 2014
' Post-déploiement - installation des drivers selon le modèle de machine
''''''''' Déclaration
On Error Resume Next
Dim objNet, objFso, objLogFile, objShell
Dim tmpObj, tmpItem
Dim SystemName, MakeModel, LocalisationDrivers, LecteurReseau
SystemName = "localhost"
' La localisation des drivers - ne doit pas nécessité d'authentification réseau.-
LocalisationDrivers = "\\monserveur.mondomaine.lan\drivers"
RepertoireTravailLocal = "C:\Windows\DeploiementDrivers"
LecteurReseau = "M"
Set objNet = CreateObject("Wscript.Network")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
''''''''' Script
' On monte le lecteur réseau
objNet.MapNetworkDrive LecteurReseau & ":", LocalisationDrivers
' On recherche le modèle
set tmpObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & SystemName & "\root\cimv2").InstancesOf ("Win32_ComputerSystem")
for each tmpItem in tmpObj
' MakeModel = trim(tmpItem.Manufacturer) & "-" & trim(tmpItem.Model)
MakeModel = trim(tmpItem.Model)
next
Set tmpObj = Nothing: Set tmpItem = Nothing
If (objFso.FolderExists(LecteurReseau & ":\" & MakeModel)) Then
' Création du répertoire local
objFso.CreateFolder RepertoireTravailLocal
' Copie de dpinst.exe & dpinst.xml
objShell.Run "cmd /C copy " & LecteurReseau & ":\dpinst* " & RepertoireTravailLocal, 1, true
' Synchro du répertoire de drivers
objShell.Run "cmd /C robocopy /S """ & LecteurReseau & ":\" & MakeModel & """ " & RepertoireTravailLocal, 1, true
' Lancement de l'installation
objShell.Run "cmd /C c: & cd " & RepertoireTravailLocal & " & dpinst.exe /c", 1, true
Set objShell = Nothing
End if
' On démonte le lecteur réseau
objNet.RemoveNetworkDrive LecteurReseau & ":", true, true
Et ça fonctionne au petit oignon !
Liens utiles :