MDT 2010: Injecting Drivers by Make and Model


Microsoft Deployment Toolkit 2010 has many great features that offer a cheap alternative for deploying images of Windows installations. There are times, however where image deployments do not go very well. Take, for instance, deploying images with device drivers. If you have multiple models of computers like my organization, this can be a potential hassle.

We recently purchased a group of new computers, but because of changes in contract,

they were different Makes and Models than we used in the past. This difference in Make and Model lead to some problems once we were deploying our image to them. We began running into driver conflicts that caused the BSOD on any of the new equipment. This lead me to create separate Boot images to deploy to these new machines until I had a chance to resolve the issue.

I came across a Windows Networking blog that quickly came to my rescue with this post.

SOLUTION

1)  Create an Out-of-Box folder structure for each model of computer you need*.  This structure should look similar to this:

  • Operating System (Ex. Windows 7 x86)
    • Make (Ex. Hewlett-Packard)
      • Model (Ex. HP Compaq dc7900 Convertible Minitower)
    • Make (Ex. Dell, Inc.)
  • Operating System (Ex. Windows 7 x64)
    • Make (Ex. Hewlett-Packard)
      • Model (Ex. HP Compaq dc7900 Convertible Minitower)
    • Make (Ex. Dell, Inc.)

* The Makes and Models used in this structure must be derived from WMI information gathered from each computer. I found a VBScript that can gather this information remotely, but unfortunately can not find the source to credit


Dim strComputer '. is the local PC
Dim WshShell 'the windows script shell
Dim strQuery 'the WMI Query to run
Dim colCompSys 'the win32_ComputerSystem collection
DIM PCModel 'the trimmed string with the model name
DIM strSerialNum
Dim colSMBIOS
strComputer = InputBox("Please enter a computer name," & vbcrlf & "or a '.' for localhost")

Set WshShell = WScript.CreateObject("WScript.Shell")
strQuery="SELECT * from Win32_ComputerSystem"
Set colCompSys=GetObject("WinMgmts://" & strComputer & "/root/cimv2").ExecQuery(strQuery)

For Each WMIProperty in colCompSys
PCModel = TRIM(WMIProperty.Model)
PCMake = TRIM(WMIProperty.Manufacturer)
Next

strQuery="Select * from Win32_SystemEnclosure"
Set colSMBIOS=GetObject("WinMgmts://" & strComputer & "/root/cimv2").ExecQuery (strQuery)

For Each objSMBIOS in colSMBIOS
strSerialNum = objSMBIOS.SerialNumber
Next

WScript.Echo "PC Details: " & VBCrLf & PCMake & VBCrLf & PCModel & VBCrLf & strSerialNum

WScript.Quit

Once you are done the folder structure should look like this:

2) Import the Drivers to their corresponding folders.

3) Open the properties of the Task Sequence. (In our case we had a task sequence for Windows 7 x86 installs.)

4) Open the Task Sequence Tab.

5) Choose Configure, then select Add…

6) From the Menu options choose General => Set Task Sequence Variable.

7) In the Task Squence Variable Field, enter DriverGroup001

8) In the Value field, enter Windows 7 x86\%make%\%model%

9) Select the Inject Drivers task.

10) Set the “Choose a selection profile” drop-down to Nothing

11) Recompile your boot cd and try it out.

Advertisements
This entry was posted in Microsoft Deployment Toolkit, Windows 7 and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s