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…)
-
Lance de “dpinst.exe” sur le répertoire local
-
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 :