Already a member?
Sign in
Dell Client BIOS Upgrades with Microsoft SCCM
Dell BIOS Upgrades for Enterprise Clients using Microsoft System Center Configuration Manager 2007
BIOS upgrades can be a vital part of any operating system migration. With Microsoft’s Vista Operating System there are required hardware features and attributes that may need to be upgraded in order to have a fully compatible install. This articles demonstrates a practical means for getting Dell OptiPlex, Latitude and Precision enterprise class systems upgraded to the latest BIOS version using simple scripts and Microsoft’s System Center Configuration Manager 2007.All of Dell’s BIOS upgrades for enterprise class systems can be executed within the Windows operating system. The Dell provided installer temporarily loads a device driver on-the-fly and injects the new firmware into a reserved memory space on the motherboard. A token is also modified in the BIOS that configures the BIOS to apply the firmware on the next reboot. The installer then forces a reboot. The sample script contained in this document demonstrates the logic of applying the correct BIOS revision installer for specific models. This demonstration is targeted specifically to large corporate customers who are intimately familiar with using and supporting Microsoft’s System Center Configuration Manager.
A ZIP file containing MOF files and scripts is available at the bottom of this page.
Assumptions
A BIOS upgrade is a fundamental change in the hardware. These changes should only be deployed if there is a specific issue in the environment that is explicitly fixed by the newer BIOS revision. It must also be restated that this scenario is intended for enterprise class client systems, and not consumer class systems.These scripts are being provided as a demonstration for adding value onto what is provided and supported by Dell. While a best effort is being provided to give you the building blocks for your own environment, these scripts are not part of Dell’s supported services.
A BIOS upgrade occurs outside of the Operating System and therefore a reboot is necessary to perform the upgrade. Reboots can cause downtime for end-users unless scheduled around their business processes. It is essential that end users be notified of any impending reboots.
Testing should be performed on all aspects of this deployment before rolling this out to your production systems. ·
- Older BIOS revisions for each model should be tested to assure success across all previous versions ·
- Test upgrade on battery power, it should not allow it ·
- Verify original issue is fixed by the successful upgrade
Gathering Information and BIOS Installers
Using an Microsoft SCCM Web Report (SQL query) you can determine the Dell models and corresponding BIOS revisions that are in your environment. This will assist in gauging the scope of your targets.
SELECT CompSys.Manufacturer0 as 'OEM', CompSys.model0 as 'Model',BIOS.SMBIOSBIOSVERSION0 as 'BIOSVersion', COUNT(Sys.Resourceid) AS 'TotalSystems'
FROM V_R_System as Sys
LEFT JOIN V_GS_PC_BIOS as BIOS on Sys.resourceid = BIOS.resourceid
LEFT JOIN V_GS_COMPUTER_SYSTEM as CompSys on Sys.resourceid = CompSys.resourceid
WHERE
CompSys.Manufacturer0 LIKE '%dell%'GROUP BY CompSys.Manufacturer0,CompSys.model0, BIOS.SMBIOSBIOSVersion0
AND (CompSys.Model0 LIKE '%optiplex%'
OR CompSys.Model0 LIKE '%latitude%'
OR CompSys.Model0 LIKE '%precision%')
ORDER BY CompSys.Model0, BIOS.SMBIOSBIOSVersion0
Once you have a listing of the models that need remediation you can download the installers from support.dell.com.
Method 1 – use the model specific menus for downloads to find the latest BIOS version.
Dell Support Downloads
Method 2 – Browse the Dell FTP site and grab the installers.
ftp://ftp.dell.com/bios/
For the OptiPlex 755 you would find the following
O755-A01.EXE
O755-A04.EXE
O755-A05.EXE
O755-A07.exe
O755-A08.exe
O755-A09.exe (this A09 is the current BIOS)
Customizing the Script
The included sample Visual Basic Script can be customized to your environment by adding or removing the logic for the models that are available in your environment. This will be done within the Select statement. You will need to match up the downloaded installer exe name with the proper version.
Disclaimer: You are required to modify this sample script for your specific environment; this script must be updated once a new BIOS upgrade is released.
DellBIOSUpgdEndUser.vbs
' DELL BIOS UPGRADES
' Dell Inc 2008
' For new BIOS revisions you can download them from ftp.dell.com/bios
' Or for individual systems use the download menus on support.dell.com
' Modify the Case statement below to reflect newer revisions
On Error Resume Next
DlgTitle = "IT Department"
Set WshShell = CreateObject("Wscript.Shell")
Set WshNet = CreateObject("Wscript.Network")
PathToScript = Left(WScript.ScriptFullName,(Len(WScript.ScriptFullName) - (Len(WScript.ScriptName) + 1)))
CompName = WshNet.ComputerName
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set wmi = objLocator.ConnectServer(CompName, "root\cimv2",,,,,128)
For Each Instance in wmi.ExecQuery("Select * From Win32_ComputerSystem",,48)
Model = Instance.ModelNext
For Each Instance in wmi.ExecQuery("Select * From Win32_SystemEnclosure",,48)
ServTag = Instance.serialnumberNext
For Each Instance in wmi.ExecQuery("Select * From Win32_Bios",,48)
BIOSRev = Instance.SMBIOSBIOSVersionNext
Model = Trim(Model)
Select Case Model
Case "Latitude D420" : ExeToRun = "D420_A06.EXE" : NewBIOSVersion="A06"End Select
Case "Latitude D430" : ExeToRun = "D430_A05.EXE" : NewBIOSVersion="A05"
Case "Latitude D520" : ExeToRun = "D520_A06.EXE" : NewBIOSVersion="A06"
Case "Latitude D530" : ExeToRun = "D530_A04.EXE" : NewBIOSVersion="A04"
Case "Latitude D531" : ExeToRun = "A04_D531.EXE" : NewBIOSVersion="A04"
Case "Latitude D620" : ExeToRun = "D620_A09.EXE" : NewBIOSVersion="A09"
Case "Latitude D630" : ExeToRun = "D630_A08.EXE" : NewBIOSVersion="A08"
Case "Latitude D820" : ExeToRun = "D820_A08.EXE" : NewBIOSVersion="A08"
Case "Latitude D830" : ExeToRun = "D830_A10.exe" : NewBIOSVersion="A10"
Case "Latitude XT" : ExeToRun = "DXT_A02.EXE" : NewBIOSVersion="A02"
Case "OptiPlex GX280" : ExeToRun = "GX280A08.exe" : NewBIOSVersion="A08"
Case "OptiPlex SX280" : ExeToRun = "SX280A09.exe" : NewBIOSVersion="A09"
Case "OptiPlex GX520" : ExeToRun = "A11GX620.exe" : NewBIOSVersion="A11"
Case "OptiPlex GX620" : ExeToRun = "A11GX620.exe" : NewBIOSVersion="A11"
Case "OptiPlex 320" : ExeToRun = "O320-0101011.EXE" : NewBIOSVersion="1.1.11"
Case "OptiPlex 330" : ExeToRun = "O330-A03.EXE" : NewBIOSVersion="A03"
Case "OptiPlex 740" : ExeToRun = "O740-2012.EXE" : NewBIOSVersion="2.0.12"
Case "OptiPlex 745" : ExeToRun = "o745-020601.exe" : NewBIOSVersion="2.6.1"
Case "OptiPlex 755" : ExeToRun = "O755-A09.EXE" : NewBIOSVersion="A09"
Case "Precision M2300" : ExeToRun = "M2300A04.EXE" : NewBIOSVersion="A04"
Case "Precision M4300" : ExeToRun = "M4300A09.EXE" : NewBIOSVersion="A09"
Case "Precision M6300" : ExeToRun = "M6300A08.EXE" : NewBIOSVersion="A08"
Case "Precision WorkStation 340" : ExeToRun = "WS340A07.EXE" : NewBIOSVersion="A07"
Case "Precision WorkStation 650" : ExeToRun = "WS650A05.EXE" : NewBIOSVersion="A05"
Case "Precision WorkStation 670" : ExeToRun = "WS670A07.EXE" : NewBIOSVersion="A07"
Case "Precision WorkStation 690" : ExeToRun = "WS690A07.EXE" : NewBIOSVersion="A07"
Case "Precision WorkStation T3400" : ExeToRun = "WST34A03.EXE" : NewBIOSVersion="A03"
Case "Precision WorkStation T5400" : ExeToRun = "T5400A01.EXE" : NewBIOSVersion="A01"
Case "Precision WorkStation T7400" : ExeToRun = "T7400A01.EXE" : NewBIOSVersion="A01"
Case Else : ExeToRun = "NA"
If ExeToRun = "NA" Then
MsgBox "We do not currently provide a BIOS upgrade for a " & Model & vbcrlf & vbcrlf & "If this is an older model system, please excess the equipment.",0,DlgTitleElseIf BIOSRev = NewBIOSVersion Then
Wscript.Quit(1)
MsgBox "The current BIOS[" & BIOSRev & "] for this " & Model & " is up-to-date and does not require an upgrade.",0,DlgTitleEnd If
Wscript.Quit(1)
ExeStr = PathToScript & "\" & ExeToRun WshShell.Run Chr(34) & ExeStr & Chr(34), 1, False
Wscript.Quit(0)
Putting together the Package
In your Microsoft SCCM Package source directory copy your custom edited VBscript and all of the associated current BIOS installers that you previously downloaded. Set the package to download to cache and call the script with the following commandline.
Wscript.exe DellBIOSUpgdEndUser.vbs
This sample script presents the end-user with a variety of dialogs that they must take action on. Therefore you should deploy this at a time when you are sure that the end-user is present at the system. This can be made available in Run Advertised Programs within SCCM or you can make it mandatory.
We have provided a sample MOF file to import these package properties.
Note: You must modify the MOF before you import it and change the SCCM Site Server and source directory. It is also necessary after the import to look over the Package and Program properties to verify that those objects conform to your deployment standards. This MOF is a sample and is not production ready!
Deployment Options
For the target systems you can create a specific collection of only those systems that need an upgrade based on hardware attributes. This would assist in making sure that you do not deploy to systems that are not eligible for an upgrade. We have provided a sample MOF file that you can import into SMS to create the collection rules using mofcomp.
Note: You will need to modify the SCCM Site Server UNC in the MOF before you import it. After the MOF import you must go into the collection queries and modify the various revisions since newer BIOS upgrades will likely have been released since the document was published.
There are also options for making the deployment silent with a forced reboot or skipping the reboot. If you choose to customize with these options beware of the following issues.
- The BIOS will not upgrade without the reboot, the installer simply loads the image file into memory and waits for the reboot.
- If a system goes into a low-power state such as sleep or hibernates then the memory space where the upgrade image is stored will be erased and the end-user will get an error when it eventually reboots. There is no harm done but the error message may cause calls into your Helpdesk and the BIOS upgrades will not have taken place.
- The silent forced reboot option is very quick and does not give the user any option to save data. It does not provide a countdown or cancel option.
The optional switches for the BIOS installers are listed below.
NOPAUSE - Run without user prompts. ·
NOREBOOT - Does not reboot the system when flashing is completed.
Example 1)
D620_A09.EXE -NOREBOOT –NOPAUSE
Completely silent and no reboot, a reboot must occur in order to upgrade
Example 2)
D620_A09.EXE –NOPAUSE
Completely silent and includes a forced reboot.
Dennis Abbott
Dell IT
If you have questions or comments, feel free to begin a discussion thread below.
Latest page update: made by scott_hanson
, Apr 24 2008, 4:29 PM EDT
(about this update
About This Update
Moved from: Sandbox
- scott_hanson
No content added or deleted.
- complete history)
No content added or deleted.
- complete history)
More Info: links to this page
|
|
DellClientBIOSUpgd.zip (Compressed Archive - 23k)
posted by DennisAbbott Apr 24 2008, 4:07 PM EDT
ZIP file with MOF files and Scripts
|

