Posts

Showing posts from September, 2017

Dynamically Update BIOS on Think Products with SCCM

Image
This article has moved to  https://blog.lenovocdrt.com/#/2017/dynamic_bios_update NOTE: What follows is a brief look at what is possible and not necessarily recommended for everyone.  Hopefully someone finds it useful. Earlier at MMS this year, a fantastic session on modern driver management in OS deployments was presented by Kim Oppalfens and Tom Degreef.  This method and what it entails can be found here . I was inspired by their session and wanted to see if this could work with Lenovo's BIOS updates in a similar manner.  The workflow is basically the same, with the key piece being the overridable task sequence variable in the Download Package Content step called OSDDownloadDownloadPackages. Here's the layout of the Task Sequence: Creating the Package(s): BIOS(s) You'll need to download the latest BIOS for your model from Lenovo's support site and extract the contents to a source directory.  Here's the folder structure I use in my lab:

Return codes for WINUPTP

Image
For Lenovo ThinkPad computers the standard utility to perform a BIOS update is WINUPTP.exe (or WINUPTP64.exe). This utility can be called with a -s parameter to stage a BIOS update silently that will complete when the system is restarted - presumably by your task sequence. To date, the possible return codes from this utility were not readily available. This post is meant to correct that. Below is a table of possible return codes from WINUPTP.exe: Return Code Value Description RET_SUCC_REBOOTING 0 BIOS update is successful and system will reboot. (normal update) RET_SUCC_NOTREBOOTING 1 BIOS update is successful and system does not reboot. (silent update) RET_UNDEFINED -1 WINUPTP Option is undefined. RET_FAIL_DRIVER_LOAD -2 Driver(tpflhlp.sys) failed to load. RET_FAIL_UNSUPPORTEDSYSTEM -3 This utility does not support this system or OS. RET_FAIL_NEEDADMINRIGHTS -4 This utility requires Administrator privilege