Jump to content

Are the BIOS settings part of the SMBiosData returned from WMI in WinP


jalexander319

Recommended Posts

I am trying to figure out a way to validate that some BIOS settings are properly set on some Panasonic ToughBooks. Currently I can do this for HP as they have been so gracious as to add a WMI namespace with all of their BIOS settings easily accessable. Lenovo has a tool where I can capture a reference machines BIOS and then apply it to other machines across the network. So I have methods for those manufacturers that ensure there BIOS is set correctly. Unfortunately I have not found anything specific for Panasonic ToughBooks.

I did come across some information for SMBIOS data using the MSSmBios_RawSMBiosTables class out of the WMI namespace. Within that class there is a property called SMBiosData that is a dump of the SMBIOS information.

What I am curious about is if anyone knows specifics about this information....like if it contains the information for the various BIOS settings. Some testing seems to indicate that it does as I can capture the data, make changes to the BIOS settings, capture the data again, and it is different. The problem seems to be that it is not always consistent, especially when then trying a different machine. So I suspect that some of the information is unique to the machine (although I have read some things that indicate that unique information is excluded).

I am wondering if anyone knows more specific information with regard to the SMBiosData or of another way that I can validate that the BIOS settings are set to a specific configuration using something that can run out of WinPE and be executed from a batch file or vbscript to allow me to write a log file to a share based on the results. (Currently if settings are found to be incorrect for HP, I have a script that parses the log files every 5 minutes and then emails a group when errors are found allowing us to correct the mistakes before the machines are reboxed.

I appreciate anyones help.

-Jeff

Link to comment
Share on other sites


This might be a tough one. I know that some manufacturer's will use the standard placing of information (DMI) however some do not. With each of these that have a tool, do they store their information in the same place? I would think maybe you can try the WMI Toolkit, but it won't show you everything by default. I've had problems viewing some areas at the base level, although I have tools that can write to that area and can read them from WinPE manually.

You'll have to do some testing to figure out how to do this, such as a read Model name from DMI then check "these" settings, since each model and/or manufacturer can be putting the data in the wrong place.

I do find it interesting that you wish to automate this process. My company still relies on quality checks done by a person who makes sure the BIOS settings are correct.

EDIT: I forgot, there is another option. We have a couple systems (have not implemented this across the board yet) where we have a BIOS update that sets all the proper settings, and also writes some additional data into the DMI so that we can confirm it has our custom BIOS update on it and not the stock or website version.

Edited by Tripredacus
Link to comment
Share on other sites

I did come across some information for SMBIOS data using the MSSmBios_RawSMBiosTables class out of the WMI namespace. Within that class there is a property called SMBiosData that is a dump of the SMBIOS information.

What I am curious about is if anyone knows specifics about this information....like if it contains the information for the various BIOS settings.

If you intend to use this, you're in for a LOT of fun parsing the tables manually (well, writing code to do so)!

Just a rough dump of the first few bytes of it on this board:

00 always 0

0204 SMBIOS version 2.4

24 wNumSMBStruc

BC04 Structure Table Length 0x04BC

0000 end table

00 table type 00

18 its length (24 dec)

0000 its handle

01 BIOS Vendor, string1

02 BIOS Vension, string2

00E0 start address segment

03 Release Date, string3

0F rom size (1024KB)

809EC97F00000000 bios characteristics

33 characteristics ext1

05 characteristics ext2

FFFF bios release (sometimes filled)

EC release (...)

417761726420536F66747761726520496E7465726E6174696F6E616C2C20496E632E00 "Award Software International, Inc."

46313300 "F13" the BIOS version is F13

30362F31392F3230303900 "06/19/2009" the BIOS date

00 end of the block

next up, there's table 01 with manufacturer, product name, version, the UUID, wakeup type...

then table 02 with much of the same (mfg, product, version, a dummy serial number)

then table 03 with a few new interesting things like the asset tag (not filled here)

then table 04 with the processor infos (socket type, mfg, family, processor ID, CPUID strings, cache infos, serial no, etc)

... and it just goes on.

If you intend to use this directly, you'll have to devote countless hours, writing code to parse all the different tables, some of which are filled in strange ways (it changes quite a bit from a board to another), also depending on which version of SMBIOS it uses (tables change! read the new PDFs for those changes in your parser code! Lots of fun handling the unexpected!) Nevermind the infos you're looking for mostly aren't there. Most of what's left is RAM infos, port infos and so on.

As for the CMOS RAM (where the BIOS settings are saved), you write the index of the byte you want to read or write to port 0x70 (mov al, somevalue then OUT 70h, al or similar), then you IN or OUT on port 0x71 to read or write the said byte (for the first bank, the other one can usually be relocated using a special register depending on the chipset used -- I've seen 0x74 for index and 0x76 for data before). Not that Windows will let you get away with such low-level hardware access these days, unless you fancy writing a kernel mode driver :lol:

Good luck!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...