Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

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

- - - - -

  • Please log in to reply
2 replies to this topic

#1
jalexander319

jalexander319
  • Member
  • 3 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


How to remove advertisement from MSFN

#2
Tripredacus

Tripredacus

    K-Mart-ian Legend

  • Super Moderator
  • 9,766 posts
  • OS:Server 2012
  • Country: Country Flag

Donator

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, 28 June 2011 - 08:21 AM.

MSFN RULES | GimageX HTA for PE 3-5 | lol probloms
msfn2_zpsc37c7153.jpg

#3
CoffeeFiend

CoffeeFiend

    Coffee Aficionado

  • Super Moderator
  • 5,399 posts
  • OS:Windows 7 x64
  • Country: Country Flag

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!
Coffee: \ˈkȯ-fē, ˈkä-\. noun. Heaven in a cup. Life's only treasure. The meaning of life. Kaffee ist wunderbar. C8H10N4O2 FTW.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN