English Community

ThinkCentre DesktopsThinkCentre A, E, M, S Series
All Forum Topics
Options

7 Posts

12-07-2018

US

13 Signins

170 Page Views

  • Posts: 7
  • Registered: ‎12-07-2018
  • Location: US
  • Views: 170
  • Message 1 of 8

ThinkCentre and ThinkStation SystemBiosMinorVersion and SystemBiosMajorVersion values - request

2019-02-01, 18:18 PM

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.

Solved! See the solution
Reply
Options

821 Posts

02-20-2009

US

1000 Signins

6041 Page Views

  • Posts: 821
  • Registered: ‎02-20-2009
  • Location: US
  • Views: 6041
  • Message 2 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-01, 19:14 PM

You should find these documented in the Deployment Recipe cards at 

https://pcsupport.lenovo.com/us/en/solutions/recipecards?linkTrack=Mast%3ASubNav%3ASupport%3ALarge%20Enterprise%3AThink%20Deployment%7CDeployment%20Recipe%20Cards

 

Scroll down to the ThinkCentre models

Reply
Options

7 Posts

12-07-2018

US

13 Signins

170 Page Views

  • Posts: 7
  • Registered: ‎12-07-2018
  • Location: US
  • Views: 170
  • Message 3 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-01, 19:42 PM

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!

Reply
Options

195 Posts

04-24-2008

CA

716 Signins

4674 Page Views

  • Posts: 195
  • Registered: ‎04-24-2008
  • Location: CA
  • Views: 4674
  • Message 4 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-04, 19:57 PM

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"
Reply
Options

7 Posts

12-07-2018

US

13 Signins

170 Page Views

  • Posts: 7
  • Registered: ‎12-07-2018
  • Location: US
  • Views: 170
  • Message 5 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-04, 21:30 PM

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-T450S/downloads/DS102109

 

Thanks!

Reply
Options

195 Posts

04-24-2008

CA

716 Signins

4674 Page Views

  • Posts: 195
  • Registered: ‎04-24-2008
  • Location: CA
  • Views: 4674
  • Message 6 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-05, 16:56 PM

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.

0 person found this solution to be helpful.

This helped me too

Reply
Options

143 Posts

11-27-2018

AT

512 Signins

5388 Page Views

  • Posts: 143
  • Registered: ‎11-27-2018
  • Location: AT
  • Views: 5388
  • Message 7 of 8

Re: ThinkCentre and ThinkStation SystemBiosMinorVersion and SystemBiosMajorVersion values - request

2019-02-07, 14:33 PM

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.

Reply
Options

7 Posts

12-07-2018

US

13 Signins

170 Page Views

  • Posts: 7
  • Registered: ‎12-07-2018
  • Location: US
  • Views: 170
  • Message 8 of 8

Re: ThinkCentre and ThinkStation SMBIOSBIOSVersion - request

2019-02-11, 14:58 PM
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.
Reply
Forum Home

Community Guidelines

Please review our Guidelines before posting.

Learn More

Check out current deals!

Go Shop
X

Save