Combine drivers from multiple Win7 installs to single image

Since you have standardized on Lenovo systems, you will definitely want to look at two things:

  1. ThinkPad Driver Packs for SCCM
  2. The ThinkVantage Update Retriever. Lenovo also has a forum post about it here.

Both methods are documented in this guide from Lenovo.

Lenovo driver packs for SCCM

These can be downloaded from http://download.lenovo.com/express/sccm.html

They are simple self extracting archives, with all the drivers already in the proper .inf format. Nice and easy, just download the packs for all your models, point Dism at that folder with the /recurse switch, and you're set.

So why did I even list another method? Because Lenovo hates us.

  • They don't seem to update the driver packages very often, so they often contain older versions of the drivers. Not always a big deal, but sometimes it is.
  • They don't have driver packs for all their models. If your laptops are fairly new, that shouldn't be a problem. But we were still using some older ones, and they don't have driver packs for them.

For what it's worth, drivers are the main reason I've convinced my work to go exclusively with Dell for laptops. I used to love Lenovos, but Dell has ready to go driver packs for ALL their systems. Just extract them and import them into your deployment tool (Dism, WDS, MDT, SCCM, etc).

ThinkVantage Update Retreiver

For a long time this has been the only method that works. For some models of laptops that is still the case.

The original intended purpose of the update retriever is to have your own local mirror for use with Lenovo's system update tool, or to push out driver and lenovo software updates. However, a lot of people skip the Lenovo way of doing things, and add the drivers to whatever deployment methods they are already using. Lenovo's ThinInstaller is their way of doing it.

The basic procedure for the way you are doing it now is:

  • Install the Update Retriever
  • Create a repository - tell it where to store it's files. These files are not in the raw .inf form you need - they are for use with Lenovo's tools. But we will fix that.
  • Next you want to add new systems - enter the Machine type (first 4 digits of the model code), operating system and language for each type of laptop you have.
  • The tool will list all the drivers available for all those models. You pick which drivers you want to install. You can just select them all, but there may be some Lenovo "helpful utilities" in there that you want to skip.
  • It will spend a while downloading. Go get a coffee. Or come back in the morning if you have a slow connection, or Lenovo's site is slow.
  • Next, and this is the important step, export the drivers from the repository. Specify a new path to save them all to, and choose which ones to export.
  • For some drivers, this will give you INF files. Unfortunately for most, it gives you setup.exe type driver install files. Now you have to go into each folder and extract the files with something like Universal Extractor, which can get you the actual .inf driver files.
  • Mount your image, and use Dism with the /Add-Driver and /Recurse options - point it at your newly extracted driver folder.

This is a lot of steps. But it's MUCH faster than mounting each image and extracting drivers. It also ensures you get the newest versions of the drivers.

Other things to improve on and speed up deployment

Adding drivers to the WIM, deploying the WIM to a system, then capturing an image of it sounds like a lot of extra work to me. I'm not quite clear if you are making different images because the systems have different hardware, or different configurations of software. If the former, you only need one image. If the latter, you still need multiple images.

Either way, there are faster ways of doing it.

Microsoft Deployment Toolkit is Microsoft's free method of automating deployment - it has the advantage that you can adjust settings and software installed so you don't have to make separate images, just a big list of features and software to apply to a specific type of machine. Unfortunately, it has a bit of a learning curve, and I haven't had time to fully figure out how best to implement it.

Windows Deployment Services is a role for Server 2008+. It works quite well, and is what I currently use to reimage machines. The basic process is this:

  • Setup a reference system with the software and settings you want. Don't worry about drivers.
  • Capture that as a WIM file to the WDS server (it comes with a tool to do that - you can either boot from a CD or network boot).
  • Repeat for each unique set of os/software/settings - hopefully you don't have too many. I chose to make all our systems the same, and use GPOs to deploy specific software for some departments.
  • Add a boot image - which is found on the normal os install cd.
  • Add all the drivers to the WDS server. Just go to drivers, import and point it at a folder full of .inf's. It will do the rest.
  • Optionally make an unattended answers file for the images you captured.
  • Add the drivers for network and storage to the boot image. On server 2008r2 for windows 7+ images you can do this from the gui with a few clicks. For older ones you must export the boot image, add drivers with the WAIK tools and import again.
  • Network boot (or boot from CD) and choose which of those captured images you want to install.
  • During the deployment, WDS will automatically install all the relevant drivers for the hardware in that system - so your same image works across different machines. And if you go buy a Dell tomorrow, just import Dell's driver pack to the WDS server - no need to change your image file at all.
  • WDS also support multicast transmission - which means you can image as many machines as you have network and power outlets for at once, in the same amount of time as imaging one, and without killing your network with traffic.

Both MDT and WDS are free (or at least included with a windows server OS), so I would check them both out. WDS is easy to setup and get going in a day or two. MDT takes more time, but is more powerful - I think you end up doing a lot more work setting it up initially, but a lot less work maintaining it afterwards. Since this isn't a super critical role, I have in the past installed windows server on a regular desktop and setup WDS. Works just fine, and you can try windows server for awhile (180 days?) before buying to make sure it will work out for you.


Would using a "Windows Deployment Services Server" be an option here? This is a Server Role in 2008 and above. You can PXE boot a Windows PE environment which will fire up an "install image" and then inject drivers to it depending on the machine you want to install the OS to. It is possible to have one install image and different sets of drivers which can be injected at install.

Advantages:

  • all images in one place (the server)
  • install multiple machines at once
  • you can add various pre- and post-install options, it's not limited to inject drivers

Disadvantage is a quite complex setup before you get it running. Maybe a bit over the top if you only have few machines. Microsofts terminology is quite messy here, too. I think you also need "Microsoft Deployment Toolkit" MDT and "Windows Automated Installation Kit" WAIK. Which together is called "Microsoft Deployment Framework" IIRC.


Everyone makes slipstream installs.

Slipstream an install together using RT Se7en or vlite and add the additional software and drivers you like.

http://www.techradar.com/us/news/software/operating-systems/how-to-build-a-slipstream-windows-7-install-disc-715117

This linked article ends with the install on a USB drive, but if you have another network deployment method, that should work fine as well. People do this all the time.


I think you're definitely on the right track with a couple of exceptions. A few suggestions to simplify the process would be:

1.) Find out exactly which drivers you need for each different hardware configuration. - The reason I say this is that in earlier production images I have created, we tried to add ALL drivers creating a rather bloated image which increases the size of the .wim by ~2x's the original size. This will take additional time to transfer .wim files and by extension increase the possibility of a bad transfer/extraction/transfer from occurring.

2.) Offline servicing of .wim images is your friend in the long term. You do not necessarily need to image all the other hardware configurations to extract drivers. You can inject drivers online since you are already using the WAIK toolkit. - IMO Lenovo is really good about adding all the necessary drivers in either the recovery partition or c:\drivers folders. If they are in .exe format, you can usually just unzip the files and extract individual drivers that way as well. This goes hand-inhand with point 1 where you identify only the drivers that you need.

3.) Suggestion: as @duenni mentioned, looking into WDS. It's a great platform, and paired with MDT, great for deploying .wim images with minimal fuss (updates, adding new drivers for new hardware configurations, etc.)