cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
SinniSin
Fanfold Paper
Posts: 4
Registered: ‎12-07-2018
Location: US
Views: 627
Message 1 of 8

ThinkCentre and ThinkStation SystemBiosMinorVersion and SystemBiosMajorVersion values - request

Hi all,

 

My company has been in the process of getting our task sequences to auto update our computers' BIOS. We want to utilize smbiosbiosversion/major/minor to accomplish this. Unlike the ThinkPad's,which already list it as "version", the Lenovo Support BIOS page for ThinkCentres and ThinkStations do not tell you what the smbiosversion the BIOS is supposed to be. The readme doesn't tell you either.

 

This has become a huge pain point for us, because we have to install updates first in order to determine what the magic number is. Can this number be added to the webpage or the readme for the ThinkCentre/ ThinkStations like it is for the ThinkPads? It's critical for our detection methods!

 

Thanks!

 

UPDATE-

Specifically looking for SystemBiosMinorVersion and SystemBiosMajorVersion values, not smbiosbiosversion

Changed title to reflect this.

Lenovo Employee rbkirk
Lenovo Employee
Posts: 806
Registered: ‎02-20-2009
Location: US
Views: 600
Message 2 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

You should find these documented in the Deployment Recipe cards at 

https://pcsupport.lenovo.com/us/en/solutions/recipecards?linkTrack=Mast%3ASubNav%3ASupport%3ALarge%2...

 

Scroll down to the ThinkCentre models

SinniSin
Fanfold Paper
Posts: 4
Registered: ‎12-07-2018
Location: US
Views: 586
Message 3 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

I appologize I embassingly used the wrong term.

 

What I care about are the follwing:

 

SystemBiosMajorVersion

SystemBiosMinorVersion

 

I know that these values change with each BIOS upgrade, and at least for ThinkPad's they match up with the model's BIOS webpage.

I'm looking for something similar for the ThinkCentres'/ThinkStations' to allow us to input those values into our detection method without needing to upgrade the computer first and writing down the values. Right now it causes us to roll back the bios retest, which is eating up alot of time for these specific model types.

 

Thanks!

rgsteele
WWAN
Posts: 192
Registered: ‎04-24-2008
Location: CA
Views: 532
Message 4 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

Any particular reason you can't use the SMBIOSBIOSVersion? That's what we use in our task sequence, with a WMI query like the following:

select * from WIN32_BIOS where SMBIOSBIOSVersion < "M1AKT37A"
Highlighted
SinniSin
Fanfold Paper
Posts: 4
Registered: ‎12-07-2018
Location: US
Views: 518
Message 5 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

Alot of our computer may have different BIOS versions. If it's one thing I've observed, it's that ThinkCentre's and ThinkStation's do not have a consistent SMBIOSBIOSVersion naming convention. 

 

For example, here are two models and the SMBIOSBIOSVersion that the order of a past few releases:

ThinkCentre M900 - FWKT7FA, FWKT8DA, FWKT90A, FWKT91A

ThinkStation P500 - A4KT96A, A4KT97A, A4KT99A, A4KTA0A, A4KTA1A

 

There isn't a great way to really sort these and say "if older than X install the BIOS, else if newer than X don't install it.".

Thats where the Major/Minor versions come in. All of these SMBIOSBIOSVersion have a consistent numbering system through the SystemBiosMajorVersion and SystemBiosMinorVersion in WMI. So far, it's been a relaible way for us to detect if a BIOS is newer or older.

 

Currently the ThinkPad driver support pages, seem to support this, since they provide the SystemBiosMajorVersion and SystemBiosMinorVersion, even if they don't call it that on their page.

 

For example:

ThinkPad T450s

SMBIOBIOSVERSION = JBET69WW (1.33 )

SystemBiosMajorVersion = 1

SystemBiosMinorVersion = 33

 

https://pcsupport.lenovo.com/us/en/products/LAPTOPS-AND-NETBOOKS/THINKPAD-T-SERIES-LAPTOPS/THINKPAD-...

 

Thanks!

rgsteele
WWAN
Posts: 192
Registered: ‎04-24-2008
Location: CA
Views: 494
Message 6 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

When you use a comparison operator in WQL with a pair of strings, it compares them using an alphabetical sort where the digits are "less than" alphabetical characters. (I assume it's comparing the ASCII values.) It works out that the SMBIOSBIOSVersion string for any newer version is always "greater than" the version string for an older version. In the examples you provided:

 

ThinkCentre M900 - FWKT7FA < FWKT8DA < FWKT90A < FWKT91A

ThinkStation P500 - A4KT96A < A4KT97A < A4KT99A < A4KTA0A < A4KTA1A

 

I've used this technique for years and have never had an issue.

pilgi3
Token Ring
Posts: 86
Registered: ‎11-27-2018
Location: AT
Views: 434
Message 7 of 8

Re: ThinkCentre and ThinkStation SystemBiosMinorVersion and SystemBiosMajorVersion values - request

I compare the informations in the WMI with the BIOS Readme textfile:

 

#Read BIOS version
        Write-Log -Message "Start reading BIOS Version which will be installed from readme file - $appName $appVersion $env:PROCESSOR_ARCHITECTURE"
        $BIOSVersion = Select-String -Path "$dirFiles\m1ujy*" -Pattern "Version M1UKT"
        $split = $BIOSVersion -split (" ")
        $appVersion = $split[1]
        Write-Log -Message "Set new AppVersion variable - $appName $appVersion"

        Write-Log -Message "Start reading BIOS Versions history from readme file - $appName $appVersion $env:PROCESSOR_ARCHITECTURE"
        $BIOSVersionArray = Select-String -Path "$dirFiles\m1ujy*" -Pattern "Changes for"
        $splitArray = $BIOSVersionArray -split (" ")
        Write-Log -Message "Array of BIOS Versions - $splitArray"


        #Read BIOS version from WMI
        Write-Log -Message "Start reading BIOS Version from WMI - $appName $appVersion"
        $WMIBIOSVersion = (Get-WmiObject -Class win32_bios).SMBIOSBIOSVersion
        Write-Log -Message "End reading BIOS Version from WMI: $WMIBIOSVersion - $appName $appVersion"

        #Get array position of the BIOS versions
        $posBIOSversion = [array]::IndexOf($splitArray, $appVersion)  
        $posWMIBIOSversion = [array]::IndexOf($splitArray, $WMIBIOSVersion)

Write-Log is a Powershell Deployment Toolkit command. You can remove or change it to Write-Host.

 

If ($posBIOSversion -ilt $posWMIBIOSversion -and $posWMIBIOSversion -ne "-1")

If the value from $posWMIBIOSversion could not be found in the readme.txt (e.g. m1ujy... .txt) the error -1 appears.

SinniSin
Fanfold Paper
Posts: 4
Registered: ‎12-07-2018
Location: US
Views: 377
Message 8 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

Thank you for this. I haven't tested it in a Task Sequence just yet, but I tested it in a SCCM query and it did exactly as you suggested. I'm not quite sure how I missed this.

Thank you.

Check out current deals!


Shop current deals

Top Kudoed Authors