Thursday, April 28, 2016

Lenovo BIOS Updates in the Task Sequence

The question popped up in a forum the other day about how people handle the upgrade of Lenovo BIOS in a Task Sequence.  There are several ways of course which can be handled, of variable sophistication.  Mikael Nystrom developed a solution for me several years back which I used for several years and enhanced on my own, in MDT Task Sequences.  However when my organization was shifting to SCCM Task Sequencing I was asked to develop something a bit lighter. The old solution kept all the BIOS update files in one very large (500MB+) package.  Clearly not the right solution in SCCM where every package used has to be downloaded from the DP during imaging. 

I moved to a much lighter solution for SCCM. 

Each BIOS revision is kept in its own container package (that's what I call them anyway, a package with no assigned program, just used to hold content for use by something else).  Its basically the same idea as an SCCM Toolkit package, or Settings package.

Creating the BIOS packages:

  1. Go out to Lenovo and download the BIOS for each model for which you want to perform an upgrade during imaging.
  2. Extract the BIOS packages into a structure on your Package content share similar to:
    \\servername\imagecontent$\BIOSpackages\Lenovo\T450-V1.45
    \\servername\imagecontent$\BIOSpackages\Lenovo\T440-V2.08
    \\servername\imagecontent$\BIOSpackages\Lenovo\T430-V2.65
  3. Use the Administrator Console to create one Legacy type package from each of these folders
    (using the example above you'll end up with 3 packages)
  4.  Distribute these packages


Task Sequence Changes:

  1. Someplace after the machine has booted into Windows for the first time place the steps to perform the BIOS upgrades.  Be sure that the you place them after the Use Toolkit and Gather steps. 
  2. Create a new TS Group for the BIOS Updates to nest under, it makes turning the BIOS updates off if needed easier and keeps the TS cleaner
  3. Under the BIOS Updates group create a Run Command Line step for Model to be upgraded
    • The command line in each case will be "Winuptp.exe /S" this is the BIOS update installer for all Lenovo Laptop models and is contained in every BIOS update.  The "/S" tells it to run quietly and automated with new GUI. It will also suppress rebooting. 
    • Add a condition on the step using a WMI query so this step will only run for the proper model
      select * from win32_computersystemproduct where version = "ThinkPad T430"
    • Add a reference to the proper BIOS Package for the model being updated buy this step.
      • I've found it easiest to create the step once the copy it for each model, updating the package reference and the name of the step to reflect the proper model
    • It s a good idea to place a reboot computer step soon after the BIOS updates complete.  Be sure to put Use Toolkit package and Gather steps immediately after the reboot.
    I have exported the BIOS Steps from my Production TS, you should be able to import this open the stub TS, then copy and paste the steps into your own TS.  The Package References will be broken, because I didn't export the content.  My packages have naming and paths in them that I'd prefer not to expose.  You will only need to create the proper packages and update the references if you start with my stub.

    BiosStub


    No comments: