SCCM Task Sequence – Updating Dell BIOS versions

FUN ALERT! Here’s how to update the Dell BIOS in a task sequence.

Notes

BIOS update executables are x86-only. Since I primarily deploy x64 machines, the task sequence (or at least it’s actions) must run inside the guest OS, and not in WinPE. Also, the BIOS update will fail unless you know the BIOS password, or the password is not set. For this reason, I make multiple tries to set a BIOS password using different ‘current’ passwords before running the actual update action.

Downloads

The Process

Prep Work

  1. First, download all the BIOS versions you’ll need for your platform. Note that some systems require multiple intermediary upgrades.
  2. Next, make an SCCM package named “Dell BIOS Updates” containing all the executables for the platforms you’d like to update.  The following is an image of my package source folder.
  3. Next, download and install Dell’s CCTK utility.
  4. Make a SCCM package named “Dell CCTK 2.01 Portable x64”
  5. Copy the contents of the following folder to the package source directory.
    C:\Program Files (x86)\Dell\CCTK\X86_64
  6. Create a new task sequence, or open a task sequence that you’d like to add the BIOS updates to.
  7. Create a new folder in this task sequence named “Dell BIOS Updates”, and use the following WMI criteria to filter. Change “Optiplex” to the make of your PC if necessary (Latitude, Precision, PowerEdge, etc.).
    select * from win32_computersystem where Model like 'Optiplex%'

TS Actions – Passwords

  1. Create a new “Run Command Line” action named “Set a BIOS Password (attempt 1)” with the following settings. This will set a BIOS password if there is no password currently set.
    command line:  cctk.exe --setuppwd=<newBiosPassword>
    package: Dell CCTK 2.01 Portable x64
  2. Create a new “Run Command Line” action named “Set a BIOS Password (attempt 2)” with the following settings. This will set a BIOS password if there is a current password that is different.
    command line:  cctk.exe --setuppwd=<newBiosPassword> --valsetuppwd=<current\oldBiosPassword>
    package: Dell CCTK 2.01 Portable x64

TS Actions – Prepping for Multiple Update Steps

Skip this section if your particular model(s) don’t require intermediary update steps.

  1. Create a new group named “Update <modelname>”. Assign this group the following 2 WMI criteria. Change “A11” to the -latest- version of the BIOS available, so that the group is skipped if the system is already up to date. Also, change “Optiplex 990%” to the make\ model number of your PC. The % represents a wildcard allowing anything after, such as a space or null character.
    If -all- the conditions are true
    select * from WIN32_BIOS where SMBIOSBIOSVersion < "A11"
    select * from win32_computersystem where Model like 'Optiplex 990%'
  2. Create a new group for each update step named “Update to A##”. The following filtering criteria should be used, and the BIOS version  in the WMI criteria should be changed to the version you’re updating -to-.
    select * from WIN32_BIOS where SMBIOSBIOSVersion < "A10"

Examples

  • Group Name: Update to  A03
    WMI:  select * from WIN32_BIOS where SMBIOSBIOSVersion < “A03”
  • Group Name: Update to A07
    WMI: select * from WIN32_BIOS where SMBIOSBIOSVersion < “A07”

TS Actions – Updates to Newer systems

Onward to the actual update step! Woohoo! This action works for systems newer than the Optiplex 755.

For each update step required, use a “Run Command Line” action with the following criteria:

Name: Update <make\model> to <new BIOS version>
WMI:
If all are true:
select * from WIN32_BIOS where SMBIOSBIOSVersion < "<NewBiosVerion>"
select * from win32_computersystem where Model like '<make model>%'
Command: <Biosname>.exe /f /s /p=<currentBiosPassword>
Package: Dell BIOS Updates

Examples

Name: Update Opti990 to A11
WMI:
If all are true:
select * from WIN32_BIOS where SMBIOSBIOSVersion < "A11"
select * from win32_computersystem where Model like 'Optiplex 990%'
Command: <Biosname>.exe /f /s /p=MyPassword
Package: Dell BIOS Updates

TS Actions – Updates to Older systems

Systems older than the Optiplex 760 are a little tricky. I can’t get BIOS updates to work while the system has a BIOS password, so we first need to remove the password.

  1. Create a TS action with the following command to remove the BIOS password:
    cctk.exe --setuppwd= --valsetuppwd=<currentPassword>
  2. For each update step required, use a “Run Command Line” action with the following criteria:
    Name: Update <make\model> to <new BIOS version>
    WMI:
    If all are true:
    select * from WIN32_BIOS where SMBIOSBIOSVersion < "<NewBiosVerion>"
    select * from win32_computersystem where Model like '<make model>%'
    Command: <Biosname>.exe -NOREBOOT -NOPAUSE
    Package: Dell BIOS Updates
  3. Finally, set a new BIOS password with the following command in a TS action:
    cctk.exe --setuppwd=<new password>

Wrapping Up

Here’s an image of my task sequence; I hope it helps. Good luck!

Advertisements

10 thoughts on “SCCM Task Sequence – Updating Dell BIOS versions

  1. Pingback: SCCM Task Sequence – Pushing Dell BIOS Settings « windowsmasher

  2. Thank you for the write-up, this really helped me out. Copying the text directly resulted in the same old malformed quotes, creating a lot of stress and confusion. But once I noticed that, it was smooth sailing. Thanks again!

  3. Pingback: SCCM – Imaging a Dell Optiplex GX620 with XP « windowsmasher

  4. Pingback: SCCM Task Sequence – Updating Dell BIOS versions

  5. Pingback: Table of Contents | windowsmasher

  6. Pingback: Dell Bios Command

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