SCCM Task Sequence – Pushing Dell BIOS Settings

In a previous post, I wrote a guide on how to update your Dell to the latest BIOS version through a task sequence. This post covers how to make BIOS setting changes through a task sequence.

Downloads

Capturing the Settings

First, we need to capture the settings that you’d like to push.

  1. Download and install the Dell CCTK on a system that matches the Make\Model you’d like to push settings to.
  2. Create a new SCCM package to house the CCTK and BIOS Settings files.
  3. Copy the contents of the following folder to the package source directory.
    C:\Program Files (x86)\Dell\CCTK\X86_64
  4. Run the CCTK Gui and select “Create Package”.
  5. Next, select “This System’s File” then click “Next”.
  6. Click “Edit”, then scroll down to the “Storage” section and uncheck the check box for any settings which match “sata#”. I’ve learned that otherwise, on most systems it will apply “Enabled” instead of “Auto” (despite choosing Auto on this screen) which causes an error on boot.
  7. Next, click “Export Configuration” and save your settings file to the source folder of your CCTK package.

Pushing the Settings

OK, now we’re ready for some Task Sequence work. Woot.

  1. Create a new task sequence, or open a task sequence that you’d like to add the BIOS settings changes to.
  2. Create a group named “Push BIOS Settings” with the following parameters.
    WMI: If -Any- are true
    select * from win32_computersystem where Model like 'Latitude%'
    select * from win32_computersystem where Model like 'Precision%'
    select * from win32_computersystem where Model like 'Optiplex%'
  3. Create a new group named “Prep”.
  4. In the “Prep” group, create a “Run Command Line” action with the following parameters. This will enable WinPE support for CCTK.
    Name: Install WinPE HAPI Driver
    Command: HAPI\hapint.exe -i -k C-C-T-K -p "hapint.exe"
    Package: Dell CCTK 2.01 Portable x64
    
  5. Next, create TS Actions in the Prep group which set a BIOS password. See my previous post “SCCM Task Sequence – Updating Dell BIOS versions” for instructions on how to do this.
  6. Create a new group in the “Push BIOS Settings” group named “Settings by Model”.
  7. For each model, create a TS Action with the following paramters.
    Name: Set Default BIOS Settings (Model)
    Command: cctk.exe -i <CCTKSavedSettingsFile>.cctk --valsetuppwd=<BiosPassword>
    Package: Dell CCTK 2.01 Portable x64
    WMI: select * from Win32_computersystem where Model like "<MyMakeandModel>%"
    

Example TS Action for the Dell 990:

Name: Set Default BIOS Settings (Opti990)
Command: cctk.exe -i OSUChem_OptiPlex990.cctk --valsetuppwd=MyPassword
Package: Dell CCTK 2.01 Portable x64
WMI: select * from Win32_computersystem where Model like "Optiplex 990%"

Enabling the TPM

I’ve noticed that on some systems, the TPM cannot be enabled by a CCTK settings file. Also, on some systems, I can’t seem to activate the TPM during WinPE regardless of the commands used. If you want to enable and activate the TPM, perform the following steps.

  1. Create a TS action in the Push Bios Settings group, -after- the Settings by Model group, with the following parameters.
    Name: Enable TPM
    Command: cctk --tpm=on --valsetuppwd=<MyPassword>
    Package: Dell CCTK 2.01 Portable x64
    
  2. Next, copy the entire “Push Dell BIOS Settings” group, and paste a new copy into a place in the task sequence -after- the “Setup Windows and ConfigMgr” step.
  3. On this new copy of the group, change the name from “Push Dell BIOS Settings” to “Push Dell BIOS Settings (Inside OS)”.
  4. Remove the “Install WinPE HAPI Driver” TS Action from this new group.
  5. Add a new “Restart Computer” TS Action after “Enable TPM” targeted at the “Currently installed Operating System”.
  6. Add a new “Run Command Line” TS Action after “Restart Computer” with the following parameters.
    Name: Activate TPM
    Command: cctk.exe --tpmactivation=activate --valsetuppwd=<MyPassword>
    Package: Dell CCTK 2.01 Portable x64
  7. Rearrange the TS Actions to match the following list:
    <Settings By Model Group>
    Enable TPM
    Restart Computer
    Activate TPM
    Set Default BIOS Settings (Model1)
    Set Default BIOS Settings (Model2)
    Set Default BIOS Settings (Model3)
    etc…

Wrapping Up

CCTK is capable of changing the SATA storage controller operation mode. This is why if you’re imaging computers, it’s important to set the BIOS settings twice, in WinPE and inside the OS. Pushing settings in WinPE lets Windows setup select the proper SATA or RAID controller driver before the OS starts. Settings need pushed again after WinPE mode is finished because some settings (such as TPM=enable or TPM activation) only work inside the OS for some systems. Lousy workaround, I know, but it’s solid.

Here are screen shots of my current TS. The first image contains my WinPE actions. The second image contains my (Inside OS) actions.

Enjoy your BIOS setting adventures. This stuff is magic!

Advertisements

12 thoughts on “SCCM Task Sequence – Pushing Dell BIOS Settings

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

  2. I got e error for “Install WinPE HAPI Driver” with error code 0x800700D8. I can’t find anything in the web…could you help me?

  3. Pingback: Table of Contents | windowsmasher

    • Rukicc, what was the CCTK return code? Generally if you can set it in Windows from the command line, you can set it in WinPE. Depending on the specific error message, ‘Not supported’ could also mean that you’re trying to use the x86 CCTK executable on the x64 WinPE, or vice-versa.

  4. Pingback: 0x800700d8 | FixError.net

  5. Pingback: How To Fix Error Code 0x800700d8 Errors - Windows Vista, Windows 7 & 8

  6. Pingback: How To Fix 0x800700d8 Errors - Windows Vista, Windows 7 & 8

  7. I am still an SCCM noob I am doing something wrong. The package is this supposed to be a package without an application? or should the application be the .exe? I am getting an error that the package referenced could not be found. I created the package without an application and distributed the content to my distribution point but I continue to get this error.

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