Driver Management (Part 2) - MDT 2008
I am often asked what the best way is to manage drivers with both BDD/MDT and ConfigMgr. With this in mind I thought I would create two blog posts dealing with this topic. The first post covered ConfigMgr and the second (this post) BDD/MDT driver management.
Please note this is not the only way to manage drivers, there are many different ways to manage drivers. However this is an approach that I have used many times with much success.
Overview
Before I get into the details I would like to provide a quick overview of driver management.
The first thing we must understand is the type of drivers that you need to manage. I place drivers into two categories:
1. NICE Drivers - Drivers that install using an INF file.
2. BAD Drivers - Drivers that must be "installed" - This could be a Bluetooth driver, finger print reader software or even DVD software that is specific to a particular model type. I also refer to these drivers as "Hardware based applications".
Next we need to understand where drivers are used during the deployment process. There are two areas where they are used:
1. Host OS - These are drivers that are installed on the Host OS.
2. Boot images - These are drivers that are required by the MDT Windows PE boot images to enable OS deployment. The key driver types required are network and mass storage drivers.
Finally we need to understand the options MDT 2008 provides for installing drivers:
1. Out-of-Box Drivers - Drivers are imported into the Deployment Workbench. During OS deployment MDT performs a PnP scan of the computer and chooses which drivers to install from all available drivers. You can filter drivers using groups. These tell MDT to only consider certain drivers when deploying an OS.
2. DRIVERPATHS - This is an option that is specified in the MDT deployment point rules. It specifies a path to a folder containing all of the drivers you would like to deploy to the computer. During OS deployment all files within that path are copied to the computer. No PnP scan is performed on the drivers contained in the folder.
So now that I have covered the basics lets discuss how I manage drivers.
Process
I do not use out-of-box drivers to install "NICE" drivers on clients, I use the DRIVERPATHS method. I like the way that driver groups work but there is one scenario that driver groups does not cover. Devices that aren’t found by a PnP scan such as USB devices, multi level drivers and devices not enabled during deployment (like Bluetooth) will not be installed using the Out-of-Box installation method. You could use a combination of these methods to deploy drivers but I prefer to use one method that covers all drivers.
However I do use Out-of-Box drivers (with driver groups) to manage two key areas:
1. Drivers that must be added to Windows PE boot images (Network and Mass storage drivers) - MDT will dynamically inject these drivers into your Windows PE boot images.
2. Mass storage drivers that will be injected during image creation - MDT will dynamically inject mass storage drivers into client during image creation.
I create an application for each of the "BAD" drivers. These applications are then assigned with the correct hardware type using MDT database or deployment point rules. This allows me to selectively install the applications based on hardware type.
So now that you know how I manage drivers lets look at how I configure MDT to support this process.
Supporting infrastructure
The following steps must be followed to prepare the MDT infrastructure for driver management:
1. Create and a share folder on the deployment server. This folder will contain the drivers for each hardware type. I usually create a folder called models and share it as models$ .
2. Create a driver group for mass storage drivers - I call this group "MassStorageDrivers"
3. Update the deployment point rules to assign the driver group to the StorageDriverSysPrepGroup property
[Default]
StorageDriverSysPrepGroup=MassStorageDrivers
Note - All mass storage drivers in this group will be injected into the computer before running sysprep, so the drivers can be picked up after reboot. This can only be used when creating an image.
4. Create a driver group for Windows PE images - I call this group "WinPE"
5. Assign the Window PE driver group in the Windows PE tab of the Deployment Point.
Note - This ensures that only drivers in this group are injected into the Windows PE boot image. This option is not available in LAB distribution points. It is important to note that LAB deployment points should only be used for creating images not deploying images.
5. Create a driver group that contains no drivers - I call this group "NoDrivers"
6. Ensure that the "NoDrivers" driver group is the only one selected in the driver groups tab of the Deployment Point.
Note - This will ensure that only drivers that are specified using the DRIVERPATHS property are installed.
6. Update the deployment point rules to specify the DRIVERPATHS property
[Default]
DRIVERPATHS1=\\SERVERNAME\SHARE\%Model%
Note - %Model% will be replaced by the WMI value gather during the MDT deployment process. All drivers for each hardware type will be stored in a folder corresponding to this value.
Now that we have prepared MDT for driver management lets look at how these settings are used.
Process
I find the simplest way to describe how I manage drivers is by example. The example I will use I perhaps the most common scenario in OS deployment, adding support for a new hardware model.
The process involves the following steps:
1. Create a folder for the new hardware type in the models folder. The models folder name must match the model value returned by WMI. I have found the simplest way to determine this value this is via a WMIC query.
The following steps detail how to perform a WMI, ensure that these steps are run on the new hardware NOT the server:
a. Open a Command Prompt
b. Type WMIC
c. To determine the Model, type CSProduct Get Name
2. Gather together all of the required "GOOD" drivers for this hardware type and place them in the new folder. I usually create a sub folder for each driver type. For example "Model\NIC" or "Model\Audio"
3. Create an MDT application for each "BAD" driver that must be installed
4. Associate the applications with the model using the MDT database or rules
5. If Required - Import mass storage drivers into the deployment workbench. Add these drivers to the "MassStorageDrivers" group during the import process.
6. If Required - Import network/mass storage drivers required for Windows PE. Add these drivers to the "WinPE" group during the import process.
Note - The version of Windows PE used by MDT is based on Windows Vista. This means that you must to import Vista drivers to support Windows PE.
7. Update the deployment point.
Note - If you have multiple deployment points then ensure that they are all updated.
8. Update any Windows PE boot images on WDS servers or DVD/CD media
Mass Storage drivers can be particularly troublesome to manage when deploying Windows XP and Windows 2003. The most recent release of MDT (March 2008) now includes support for injecting mass storage drivers before running sysprep, so the drivers can be picked up after reboot. This is a great new feature of MDT but it can only be used when creating an image. MDT CAN NOT inject drivers into an image that has already been syspreped.
So what does this really mean? If you have a new hardware type that requires a mass storage driver not currently supported by your image then you will need to recreate your image :(.
Note - ConfigMgr can inject drivers into an existing image.
Note - MDT will inject Vista and Windows 2008 mass storage drivers
So that's how I manage drivers .... simple :)
This post was contributed by Ben Hunter a Consultant with Microsoft Services New Zealand.
Comments
Anonymous
January 01, 2003
Hi Benno, The best way of getting around the problem of all the different model types is to use model aliases. I have a previous blog post that details how to do this: http://blogs.technet.com/benhunter/archive/2007/03/28/bdd-2007-tips-creating-model-aliases.aspx I do not know why the functionality to assign a driver group to a task sequence was removed from the interface. However you can assign this either dynamically or statically using the customsettings.ini file. Here is an example of doing it statically: [Settings] TasksequenceID,Default [Default] [TaskSeq-1] DriverGroup= HP Compaq dc7100 [TaskSeq-2] DriverGroup=HP Compaq DC7600 I would not recomand doing this statically. Instead I would use one task sequence that dynamically assigns the driver group. This will reduce the management overhead. Thanks, BenAnonymous
January 01, 2003
Hi Tobias, Are you adding injecting the driver when you create the image? Did you add the driver to the group specified by StorageDriverSysPrepGroup? Thanks, BenAnonymous
January 01, 2003
Tobias, Have you checked the log files to find out why it is failing? You'll probably find the reason there. Look for the bdd.log (amongst others) in the MININT directory. HTH, DanielAnonymous
January 01, 2003
Hi Rich, It should be copying the drivers to C:drivers. I have found that most drivers include a readme that explains how to extract them. Generally they cannot be extracted by Winzip. Daniel was refering to installs that include a silent switch. You should never need to repackage. Thanks, BenAnonymous
January 01, 2003
Hi Aviad, This not work for a media point using the current configuration. However it can easily be adjusted to work for a media deployment point. What you should do is create an application that contains the drivers for each model. Then simply include this application in the media deployment point. You will need to change the DRIVERPATHS value: DRIVERPATHS1=%DeployRoot%Applicationsdrivers%Model% Hopefully that helps. Thanks, BenAnonymous
January 01, 2003
Hi Ben, I did check to ensure I have an IP address which I do. I've deleted the MININT and _SMSTaskSequence folders, I've even booted with a WinPE usb and did a format of the drive to be sure. The issue I'm having is trying to deploy a WIM of Windows XP. I've done some testing with doing a remote install of Vista from Source Files and that goes through fine. I'm thinking I may have my syntax wrong with editing the Rules for my Deployment Point. I've tried several configurations but this is the last one that I tested with.
[Settings] Priority=Default Properties=MyCustomProperty [Default] StorageDriverSysPrepGroup=MassStorageDrivers [Default] DRIVERPATHS1=\cg-ny-vds-01Models$%Model% [Default] OSInstall=Y UserDataLocation=NONE SkipAppsOnUpgrade=YES SkipCapture=NO SkipAdminPassword=YES SkipProductKey=YES
I've tried adding the "StorageDriverSysPrepGroup=MassStorageDrivers" and "DRIVERPATHS1=\cg-ny-vds-01Models$%Model%" entries under the same "[Default]" as the OSInstall=y with no luck as well. Before following this tutorial I was able to deploy images over and over with XP but somewhere I've gone awry with this tutorial.
Anonymous
January 01, 2003
Hi Ben, In my OSD properties, I don't have the Applications or Driver Groups tabs. How would I bring those in? Thanks KellyAnonymous
January 01, 2003
Hi Ben, Thanks for the info. From there on, how are these tasks performed? thanks again, KellyAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hi Md, I would suggest that you have the correct driver added to WinPE but for some reason it is not added to the Host OS. What OS are you deploying? /BenAnonymous
January 01, 2003
Thanks for the suggestions. I've come to find out it's only when I'm working with a WIM file that has been sysprepped. Can't seem to figure out why. So now that I'm able to deploy my XP WIM again, I've started from scratch and redid all of the steps in this tutorial and adjusted my Rules as so: [Default] OSInstall=Y StorageDriverSysPrepGroup=MassStorageDrivers DRIVERPATHS1=\cg-ny-vds-01Models$%Model% I'm out of time for the day to continue working on this but will be back at it tomorrow. I'm wondering if I need to have those entries before the OSInstall=Y. I'm able to get my image out but still I am not getting any driver support. I made sure to create the models$ share and named the folder from my WMI query.Anonymous
January 01, 2003
Hi Mwest, It sounds like it is time to dive into the logs :). Thanks, BenAnonymous
January 01, 2003
I am often asked what the best way is to manage drivers with both BDD/MDT and ConfigMgr. With this inAnonymous
January 01, 2003
Hi Greg, What you are doing sounds correct. I would suggest that you look at the ztigather.log file to troubleshoot this issue. It should show what the driverpaths1 value is set too. For more information on troubleshooting MDT have a look at the troubleshooting post on my old blog - http://blogs.technet.com/benhunter Thanks, BenAnonymous
January 01, 2003
Hi jparekh73, I don't have too much experience with VMware workstation. You will need to integrate the mass storage drivers for VMware into yuor boot image and the OS install process. I would suggest that you post the question on myitforum. http://www.myitforum.com/forums/Operating_System_Deployment/forumid_150/tt.htm Thanks, BenAnonymous
January 01, 2003
Hi Rich, You do not need to add applications to the task sequence. It will dynamically install the applications using the "Install applications" task in the state restore phase. Thanks, BenAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hi Darren, I like to use model aliases to do this. What I do is truncate the model type after the first four characters. See the following blog post for more information on model aliases: http://blogs.technet.com/benhunter/archive/2007/03/28/bdd-2007-tips-creating-model-aliases.aspx Thanks, BenAnonymous
January 01, 2003
Hi Md, I would suggest that you have the correct driver added to WinPE but for some reason it is not added to the Host OS. What OS are you deploying? /BenAnonymous
January 01, 2003
Hi Jared, Do you have the the following to your sysprep.inf file for creating the master image? [Unattended] UpdateInstalledDrivers=yes Here is some more info on what it does: http://technet2.microsoft.com/windowsserver/en/library/4dba14f3-76e1-4a9e-b67a-3a93230f63071033.mspx?mfr=true I have seen people installing the application to "work around" this issue. I am not sure if they had the same problem you had. Thanks, BenAnonymous
January 01, 2003
@Rich Hi Rich, When I have come across this problem often the only way is to try and 'break open' the installer package in order to get the msi file or the driver files. Try launching the installer program whilst keeping an eye on your %temp% folder to see what contents are extracted to it. You may see the files you need are copied there, and then you can grab them to try doing a silent install. It doesn't always work, but I have had some success with it. HTH, DanielAnonymous
January 01, 2003
Hi Jared, What type of machine did you use to create the master image? Also which OS are you deploying? Thanks, BenAnonymous
January 01, 2003
Hi Shane, I haven't come across this issue yet. However I would suggest that you would need to write a userexit script that creates a model alias for the IBM models. This would need to include specific exceptions for this model. The following blog post details how to use model aliases, you just need to adjust it for IBM models - http://blogs.technet.com/benhunter/archive/2007/03/28/bdd-2007-tips-creating-model-aliases.aspx Thanks, BenAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hi Jared, The drivers get copied to the C:drivers folder which is hidden. They also get injected into the driver store. Thanks, BenAnonymous
January 01, 2003
Dear Ben, Thank you so much for this post -- It's brilliant! I've got it working but I'm having a problem with some computers that don't report the Model name correctly. WMIC is returning blank model names for these computers. I'm looking for a way to "override" the model name based on a machine's MAC address (these machines also don't report UUID properly!). I've thought of two solutions:
- Use the MDT database ServerA spare field as an environment variable and specify DriverPaths001=\ServerDRIVERS$%ServerA%
- Using the MDT database and manually storing a model name for each of these dumb computers in the ServerA spare field. Then modifying the ZTIGather.wsf script to populate the model variable when it is not returned from WMI. Is there a better way to accomplish this? I know script modifications are not supported, but I'm stuck with these computers and can't replace them. Also is there some script I can use to pre-populate the MDT database (e.g. run as a login script) to capture the information in the Identify Tab? I'm leaning towards option 2, as I don't want to have to populate the Model for all computers in the database, and I fear that if I specify an additonal DriverPathsNNN variable for %Model% it would copy the entire driver library (all models) down to the machine. Again, thank you Bill
Anonymous
January 01, 2003
Hey guys, I know Ben is out for the next few days but I've stumbled upon something in my testing. I've been having an issue with getting my image to deploy and install the devices using this tutorial. I've come to find that the drivers are being copied over during the deployment process with my Win XP WIM, they are in c:drivers but the folder is hidden. Now knowing that they are actually there stumps me more as to why they are not installing themselves. The possible thought I have is that the image is not sysprepped. The reason for this being that I can't seem to deploy a sysprepped image for some reason. I'm going to test capturing an image with MDT rather than using one I captured manually with ImageX.Anonymous
January 01, 2003
Hi Rich, The best way is to use the database rules. This is detailed in the "deployment customisation guide" in the chapter "Configuring the Database" section. Thanks, BenAnonymous
January 01, 2003
Hi Rich, The non-silent installs will still work. However I think you shouldn't need to use non-silent installs for driver installation. I have always managed to find ways to install the BAD drivers silently. I think it is a very bad idea to be interacting with the deployment process as introduces a greatly increased management overhead and likehood of error. Thanks, BenAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hi Olivier, The best way to do this may be by adding a script to your task sequence that adjusts the driverpaths value that you have specified in the database. For example for an HP - 8510W you could specify the following driver path in the database - "HP - 8510W". You would then detect the type of OS that has been deployed and adjust the driver group accordingly. So if you detect the OS as Vista then simply update the value in the database, for example "HP - 8510W - Vista". This task would need to be run before the apply drivers task. Thanks, BenAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Ben - I'm using VPC (and tried VMWare Wksn 6) as well to boot of the LiteTouch.iso to connect to the MDT 2008. PE starts fine and sees the network (had to add the AMD driver for VMWare) but both VPC and VM cannot see te C: drive. Any ideas? VM is set for IDE and VPC is set as is. The virtual drives are preset to 8gb.Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hey guys, I'm running into a snag with this. I can PXE boot fine, go through the LTI setup, and it begins running the task sequence. Once it gets to Installing Operating System, it sits for about 30 seconds and errors out with 32 errors. The errors repeatedly cannot find the deployment server, and the final one at the bottom states that it cannot find it because there is no network device on the machine. I'm able to authenticate when first starting the LTI setup but once it gets here it fails. I've added the available NIC drivers for this computer (Dell Latitude D610) to the WinPE image but still nothing. Let me know if you need to exact error message or if this is enough. As always, appreciate your help guys!Anonymous
January 01, 2003
MWest, Glad that fixed it! Customers always laugh and look at me funny when I tell them to wait 5 minutes as it will probably solve itself. I have never found anything offically documented about this, but I suspect that Windows Setup will continue on errors after a delay when used with an unattend.txt file. A shame that the error window did not have a counting down clock on it or something else to tell you not to panic; I wonder how many other people have had this problem... It might even be worthy of a blog post if I could only get screenshots! Glad to have been of help, DanielAnonymous
January 01, 2003
Hi MWest, This might seem a bit bizarre, but have you just waited for a few minutes without touching the machine? A couple of times I have had an identical problem and the solution was to do nothing! After 5 minutes Windows Setup continued and installed the correct driver from it's cache even though it had originally popped up the driver window. If that is not the solution, then it seems that you don't have the right driver added in MDT, you'll need to check the PNP IDs against the drivers you have added to see if you have the exact driver. HTH, DanielAnonymous
January 01, 2003
Ok, that did it. 3.5 minutes and there it went and finished on it's own. Would be nice to not have that happen but at least I'm back on track. Thanks again Daniel!Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
MWest, Although the drivers are copied down to the C: drive, Windows will not know that they are there to be used. That is the purpose (or one of them) for the OEMPnpDriversPath key in the sysprep.inf file. HTH, DanielAnonymous
January 01, 2003
Hi Rich, It looks like you have an IBM machine. This is how they define their model types. So yes I am suggesting that you use this folder name. I usually include a text file in the folder that identifies the smodel type with the real product name. You do not need to create seperate driver paths entries. This is taken tare of automagically by the %model% part of the path. DRIVERPATHS1=\SERVERNAMESHARE%Model% For further information on how to assiociate applications with the model type please have a look at one of my old blog posts: http://blogs.technet.com/benhunter/archive/2007/03/17/understanding-bdd-rule-processing.aspx Thanks, BenAnonymous
January 01, 2003
Hi Zac, You can assiciate the applications to models using the database. Examples of this are included in the MDT documentation. further information is also detailed here - http://blogs.technet.com/benhunter/archive/2007/03/17/understanding-bdd-rule-processing.aspx Thanks, BenAnonymous
January 01, 2003
Hello, I have been trying to setup MDT 2008 for deploying Win XP to a core group of different workstations. I have been researching this for the past month and testing it as well. I have successfully setup MDT 2008 and can deploy Win XP to different Dell hardware. At first I would select a different driver group for the deployment point for the hardware I was deploying to. I want this to happen automatically though. I setup the MDT database and created a Make and Model for each hardware type and specified the driver group name for the specific make and model. I tried running this while the deployment point driver group settings had nothing checked. No drivers would install. It seems to only work based on the deployment point driver group setting, not the model type it pulls from WMI. I have not found much detail on this setup. I also tried what you have outlined in this blog. I removed the database references and created a share on the server, put the drivers in subfolders with a parent folder of the WMI model type and added the path in the customsettings.ini for the deployment point. I then selected the no drivers group I created. Still no drivers were pushed to the workstation. Sorr for the long post, please help if you can. ThanksAnonymous
January 01, 2003
Dear Ben, I need some help with the Mass Storage with XP Pro. In the LAB deployment section, under the Windows PE, under driver injection, I have included the Mass Storage only. I have added the mass storage to a new drver group i have created, called MassStorageDrivers. The problem. With my deployment of the wim to a target machine, it will get a BSOD. I need someone to explain the mass storage part to me. Maybe I have missed a few steps. ThxAnonymous
January 01, 2003
Anyone, I am stuck and have been for about 2 days and i sure can use someones help. I am building a Lite Touch XP SP 3 Image using the BDD 2007. I use the BDD to do a unattended build which i then sysprep. Of course within the image contains a driver folder with all the correct drivers and bleow that a massstorage folder with the latest mass storage files from Intel. The issue is when after i build the image and get it properly sysprepped. I have no issues on any other machines exept one. It is a GX755 with the Intel Chipset (iaAHCI_ICH9R = "Intel(R) ICH9 SATA AHCIController (Desktop ICH9R)" controllor) which i have properly refrenced in the mass storage device section of my syprep foler. The issue is when the machine boots up and before it runs the mini setup wizard it gives this error: Error loading operating system. Now if i go into the bios and swich the controller from AHCIraid to ATARAID the machine comes up fine however when you are working wtih about a 100 desktops this makes the deployment a little less the LIGHT TOUCH. If there is anyone out there who has seen this or has any kind of information that can help please do. ThXAnonymous
January 01, 2003
Hey guys, I've got everything working properly but I'm running into two issues that are just bugging me. One being that during the driver install portion of sysprep after the image is deployed, it doesn't silently install the driver for the plug and play monitor. I always have to choose if I want to let it check online for the driver, click next a couple times, then click finish. Is there a way to get that one to silently install too? It seems to be pulling it's driver from the Windows driver cache rather than c:drivers. Another issue I'm having in the same vain and this may not be the right spot for it, is that when I install Office 2007 with the answer file, I still have to click "Install Now" to get it to start but the rest goes from the answer file. Is there a way to get it to not require me to click "Install Now" and just do it on it's own?Anonymous
January 01, 2003
Hi Ben, This way of injecting the drivers works but I am running into a problem in my company I already have 17 different model names for one and the same laptop (e.g. HP Compaq dc7100 USDT(PN286ET)) HP changes the model name constantly but the drivers are the same. I liked the way from BDD by creating 1 driver group per model and select this with the build for the model. This way of injecting GOOD driver per model has been removed with MDT 2008. Why? Is there a task sequence available in MDT like the one for selecting the operating system only then for selecting the drivers just like in BDD. Thanks, BennoAnonymous
January 01, 2003
Dear Ben, I need some help with the Mass Storage with XP Pro. In the LAB deployment section, under the Windows PE, under driver injection, I have included the Mass Storage only. I have added the mass storage to a new drver group i have created, called MassStorageDrivers. The problem. With my deployment of the wim to a target machine, it will get a BSOD. I need someone to explain the mass storage part to me. Maybe I have missed a few steps. ThxAnonymous
January 01, 2003
Hi Benno, I agree that driver groups work well. However I don’t use them as they don’t work in all scenarios and I prefer to use one method only (maybe I am lazy ). Have you thought about assigning the driver group dynamically using the customsettings.ini file? This way you only need one task sequence for all models. Thanks, BenAnonymous
January 01, 2003
Thanks for the info Daniel. I'm now able to successfully deploy XP from a WIM image with driver support. One little hang up I'm running into is that with the Dell Latitude D610 I'm using, is that it's looking for a driver for the Plug and Play monitor. I don't even have to do anything aside from click ok and next a couple times and it finds the driver in Windows' default driver cache, but it interrupts the flow of the whole thing to have to watch for it. Is there a way to tell it to just find and install it like it does all of the other drivers?Anonymous
January 01, 2003
Thanks for the info Daniel, I'll give it a try. I did try to locate the driver after it was installed. When I looked at the driver for it, it said there was no driver installed. I checked around with a few other workstations in my office and they all seemed to have the generic "monitor.sys" from c:windowssystem32drivers as their driver. I've copied that and the entire folder to my Models$ share but with no luck. I'll give the wait it out option a try right now. Oh, I did also figure out my Office silent install issue. When I created the config.xml I assumed it would make it silent, did some edits to it and it's all good.Anonymous
January 01, 2003
Ben, as always, you rock! I'm going to give this a shot right now.Anonymous
January 01, 2003
Hi Mwest, There is definitely a problem with the syntax of your rules. You can only have one default section. The best place to test for errors is the MININTztigather.log file. You should also have a look in the bdd.log file to see if there are any errors in there. Thanks, BenAnonymous
January 01, 2003
Hi Class, You can use multiple driverpaths. Thanks, BenAnonymous
April 17, 2008
Ben, This has been long awaited by my part. Thanks for taking the time to post this. Just a few questions.
- Regarding the WMIC - CSProduct Get Name command. I ran this on my laptop for example, and here is what I got: 1951WBF. Are you suggesting to name the driver folder something like this: Models$1951WBF ?
- Regarding the customsettings.ini - DriversPaths1. Do I need to have a separate entry for each model? For example, DriversPaths1=\servermodels$1951WBF DriversPaths2=\servermodels$Power Edge 2600
- Associate the applications with the model using the MDT deployment rules. Can you explain this further? Let's say I already have all of my applications configured in MDT. Right now I have them added in the Task Sequence to install as an application. Is this necessary or can I use customsettings.ini to point to the source directory of the application install files? Can you explain this further. Great stuff. This has been very useful. Rich
Anonymous
April 18, 2008
The comment has been removedAnonymous
April 22, 2008
Hi Ben, Ok, got it now. A question regarding the rules processing for the hardware based applications. If I set this up according to your post, do I still need to add the applications to my task sequence? I guess I'm not seeing the real benefit of the rule processing in this scenario. In my environment I have setup the "BAD" drivers to install as applications and I tag those in to the State Restore phase in my Task Sequence. Just looking for some clarification. Thanks, RichAnonymous
April 23, 2008
Hi Ben, What if they're not silent installs? Just want to make sure this doesn't mess anything up. As it is now, for the non silent installs, my techs have to intervene for a few app installs during state restore. Would this behave the same as it does now? RichAnonymous
April 23, 2008
The comment has been removedAnonymous
April 24, 2008
The comment has been removedAnonymous
April 24, 2008
The comment has been removedAnonymous
April 24, 2008
Hi Ben, Any tips you can give me on finding silent installs for the "BAD" drivers? I've been told by certain companies, like Nvidia, that a particular install just doesn't have a silent switch. Thanks, RichAnonymous
April 28, 2008
Rich - Thanks for that. Today I created a new task sequence and deployed and captured a wim that that works with the sata drive on this dell 755 using mdt 2008. I had problems with my task sequence and things not working and decided it was that causing me all my headaches. Sure enough. I'm celebrating tonight for sure. & thanks to all you guys who always have the answer. It's a beautiful thing to see that task sequence finish to a white screen! I only wish I was still deployning Vista. ;) AndreaAnonymous
April 30, 2008
Hi Guys, I have this setup and so far everything is looking great! I've also noticed the drivers in my models% directory being copied over the c:drivers location on the target PC. My drivers appear to be installing dynamically, as this article describes. That said, should it be copying the drivers to my c:drivers directory? Now that I have the "NICE" drivers installing with this method, I need to work on my "BAD" drivers. I have one question regarding this documentation. Step 4 under the Process - Associate the applications with the model using the MDT database or Rules. I don't use MDT database. How do I associate the hardware based apps (BAD drivers) in the deployment rules? Can we see an example of how I can use this? Thanks a million for this guys. RichAnonymous
April 30, 2008
Hi Daniel, I've tried using Winzip on some of these and am unable to get them to extract. I've also tried running the .exe from CMD and put a /? after the .exe At times, I get lucky with this. I tried to run some of these "BAD" driver installs while monitoring the %temp% directory as you stated, but I'm only able to see the source files (.dll for example), I get no information on silent switches. Are you referring to actually repackaging the installs that include a silent switch? This is an area I'd like to know more about. Thanks, RichAnonymous
May 05, 2008
Thanks for the info Ben. Side note - How do I associate the hardware based apps (BAD drivers) in the deployment rules? Thanks, RichAnonymous
May 09, 2008
Hi Ben, My Deployment Points in MDT 2008 do not show the driver groups, applications, and task sequences as shown in this blog. I see the note to Kelly explaining to add the RESOURCEROOT variable to the cs.ini. Just for clarification, does this pertain to MDT 08? Also, if we could get some basic instructions on getting this setup, that would be great. Thanks, RichAnonymous
May 25, 2008
Hi Ben, i'm using a single image and the MEDIA distribution point only. is this method work with the MEDIA ? and if yes how ? after i finish to create an image and capture it, at first boot when sysprerp is working how do the system know what is the path to the new drivers folder ? (\myserverdrivers$%model%) do i need to point the folder in the sysprep.inf ? we are talking about video drivers etc. (not mass storage) thanks in advanced, Aviad (faruzaviad dot gmail dot com)Anonymous
May 28, 2008
Hi Ben, New to this so forgive the simple question. I have scoured the net for no answer. When I right click on my deployment point I do not see the tabs Task Sequence, Applications or Driver Groups.I also note that Your screen shot shows Network Properties. Mine shows Server Deployment Point Properties and only the General, Rules and Windows PE tabs. How do I bring up Network Point property? Thanks in Advance.Anonymous
May 29, 2008
The comment has been removedAnonymous
June 02, 2008
Ben, thanks for the part 2 link. that is helping a great deal with my deployment. having s issue wiht a BAD driver... Its the XP Intel 945GM Video driver. After the OS is downm, and all other apps are installed, I run the setup -s from my deployment server, and it jsut seems to hang. On the screen, I have new hardware found wizards, and if i cancel them, the video install continues, and finishes. any idea ? I also tried extracting the drivers, and trying it that way, and it didnt work that way either? any thoughts ? thanks JaredAnonymous
June 03, 2008
Ben, I have a Lenovo X60 machine, that when I build it out with a custom WIM that Ive created, and using the drvierspath001 in CS.ini to copy over all drivers in the drivers folder I have for that make/model, give me a “!” on 1 of the 2 display drivers listed in device manger. The 1st one lists correctly in that it’s a Mobile Intel® 945 Express Chipset Family, The 2nd one, lists as a Video controller ( VGA Compatible) I know the drivers are there in the driversvideo folder, as if I go to update the driver, and point to that folder, it finds the driver, and closes the “ new hardware found” open window. Any Idea how I can tell MDT to look for both drivers in the same folder ?Anonymous
June 04, 2008
I created the custom WIm on a VM machine. the Os im deploying is XPSP2. Thanks JaredAnonymous
June 05, 2008
Ben, Ill check that out and make the modification if necessary. Thanks for the idea. JaredAnonymous
June 05, 2008
Ben, That worked.. i know ive had that ine before in my sysprep. Dont know how I missed that one. Thanks ! another question, where the MDT copy the drivers folder over to on a vista machine? is it still to the c:drivers folder ? reason im asking is that I ahve my rules to do that, and i dont see the folder on the machine im tesing on. ThanksAnonymous
June 17, 2008
Situation: MDT installed Distribution with applications and drivers OS targets the WDS images Basic Custom Win XP SP3 without drivers. Database and UserExit.vbs creating alias for IBM Models. Problem: When I build a client on a 6072 Machine the drivers are applied and installed When building on a 8104 Machine the drivers are copied on c:Drivers but not installed. I run Device MGR and can right click them to install automaticly ( DevicePath in registry seems ok ) Sysprep is updated by ZtiConfig properly with OEMDriversPath. The autologon works, but since the network driver isnt installed , the bind to my deploy share can't be made. In my setupapi.log I get error # 0xe0000219 On my Sound,Network,Video and TPM Drivers I noticed that multiple folders are copied on c:Drivers ie: 80.1.12.3 and 80.1.12.3(1) with same files. But I don't think it should cause the problem. Any ideas ??Anonymous
June 17, 2008
I am using your method above with great results. The question I have is I am deploying to IBM/Lenovos and they have various 7 digit model numbers such as 814324U. The first four 8143 are the actual model and the next 3 I guess is the minor version of hardware setup. Sometime we have upto 10 different minor revisions of the same hardware. Is there a better way to handle this than having 10 different folders of the same drivers in my models share and 10 different Make Model db entries? Thanks!Anonymous
July 30, 2008
I have implemented the database with MDT, I use requests make an model for the drivers. It works perfectly to deploy XP operating systems. But now I going to use a same PC (so same make and model) for deploy Vista, so how can I specify differents Operating systems for my drivers into the database ?Anonymous
October 22, 2008
Hi Ben, First of I have been using the above method for working with drivers and it has worked fine, but the other day I came accross a little problem, I have a new server that is returning a %model% of "IBM 3850 M2 / x3950 M2 -[71414RM]-" as the "/" cannot be used in a folder name therefore the use of the driver paths method does not work, is there a work around for this? or have you not come accross this problem. Cheers Shane.Anonymous
October 24, 2008
I didn't see an example of how you would setup a BAD driver. Is there a way to associate a model with an application?Anonymous
November 14, 2008
Sully07 - I am having the same exact issue. I have the ICH9 driver in the appropriate Models$ share and verified the %Models% is the right share name for this machine. It will format the drive, create a partition, copy the files for installation, then when it actually tries to run windows(when you should get to the 39 minute installation screen) it says error loading Operating System. Mine also works if you switch it to ATA, but don't want to do that with 200+ machines. I am not sure what to do since the process I use has been done for every other install and been successful.Anonymous
November 20, 2008
Can you use multiple DriverPaths? Like DriverPaths1=\servershare%model% DriverPaths2=\servershareCORE CORE being a folder that has OEM driver Packs from Intel Chipset, NVidia, ATI which contain many many different drivers and span multiple machine models.Anonymous
December 24, 2008
Hello everybody, I am pretty new to Windows Deployment. Nevertheless, this blog has already helped me out quite a lot. Thanks. One question though. Regarding your suggestion to use model aliases (Apr 23) to manage "BAD" drivers and HW specific applications, I was wondering if a similar construction could be used for the DRIVERPATH-property? In the proposed setup, it seems to me one has to create a subfolder under \SERVERNAMESHARE to account for all possible models. Would a construction like: DRIVERPATHS1=\SERVERNAMESHARE%ModelAlias% or DRIVERPATHS1=\SERVERNAMESHARE#SetModelAlias()# be valid? In other words, how can one use model aliases in combination with the DRIVERPATH property? Thanks, YaluAnonymous
January 14, 2009
The comment has been removedAnonymous
January 28, 2009
Hi Ben Your post is invaluable! Thanks so much for your practical advise and also for monitoring the comments still, 9 months later. Can you give me some insite into how to figure out the default Variable names? How did you know to use DRIVERPATH1? I would like to introduce some conditional logic in which 'if dell utility partition exists' format partition 2 and install xp there instead of formatting entire hd and losing said partition. I did read through all your old posts but if I missed a spot where you addressed this basic subject I'd appreciate a link. -DarciAnonymous
May 26, 2009
The comment has been removedAnonymous
August 20, 2009
The comment has been removedAnonymous
August 20, 2009
The comment has been removedAnonymous
November 01, 2009
I'm trying to do this for the first time with MDT 2010. There are no longer driver groups in 2010 so would you approach this the same way through selection profiles? Is there anything you're now doing differently due to changes in 2010?Anonymous
January 15, 2010
The comment has been removedAnonymous
January 25, 2010
Hello Andrea ; Your post is from January 2010 , so I would like to ask you one question because you are using WINxp and mdt 2008 , just like me. Do you keep dell utility partition, format partition 2 and install xp there instead of formatting entire hd and losing utility partition? I can not do it , do you know any script that format the second partition and install OS there ? Thank, Regards, Mikel.Anonymous
December 02, 2010
I can't seem to get the WQL Query to work after I add it as a condition to a driver package. Shuold I see positive results after clicking Test Query? Mine fail.Is says syntax is vaild, result count 0.