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.
Capturing the Settings
First, we need to capture the settings that you’d like to push.
- Download and install the Dell CCTK on a system that matches the Make\Model you’d like to push settings to.
- Create a new SCCM package to house the CCTK and BIOS Settings files.
- Copy the contents of the following folder to the package source directory.
C:\Program Files (x86)\Dell\CCTK\X86_64
- Run the CCTK Gui and select “Create Package”.
- Next, select “This System’s File” then click “Next”.
- 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.
- 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.
- Create a new task sequence, or open a task sequence that you’d like to add the BIOS settings changes to.
- 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%'
- Create a new group named “Prep”.
- 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
- 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.
- Create a new group in the “Push BIOS Settings” group named “Settings by Model”.
- 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.
- 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
- 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.
- On this new copy of the group, change the name from “Push Dell BIOS Settings” to “Push Dell BIOS Settings (Inside OS)”.
- Remove the “Install WinPE HAPI Driver” TS Action from this new group.
- Add a new “Restart Computer” TS Action after “Enable TPM” targeted at the “Currently installed Operating System”.
- 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
- Rearrange the TS Actions to match the following list:
<Settings By Model Group>
Set Default BIOS Settings (Model1)
Set Default BIOS Settings (Model2)
Set Default BIOS Settings (Model3)
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!