The DMI Discontinuity and the Perils of Brand X Computing
by, 6th June 2008 at 06:27 AM (3426 Views)
Built into practically all late model computers there is a small chunk of the BIOS flash memory reserved for management information such as the brand, type and serial number of the product. This was originally called DMI (Desktop management Interface) but has now been renamed SMBIOS (System Management BIOS). This little chunk of memory is accessible by a number of means including WMI and hardware identification programs such as Everest. This little chunk of information is a fabulous resource and should allow you to easily inventory your systems and identify them uniquely when performing image deployment through SMS or the new MDT (Microsoft Deployment Toolkit).
The harsh reality though is somewhat different for most of us, in the never ending search for the best price and with management grabbing up whatever looks pretty in the brochures most of us have ended up with a collection of different types and brands of computers. The larger manufacturers can at least be trusted to write this information into the BIOS when the computers are produced identifying them by a serial number, product number, manufacturer and uid as such these machines are not the problem.
Brand X however is a different matter. Brand X is my term for anything that was built from a non-major brand. You know the type, smaller companies from all over that build the computers from standard parts to order. In general these machines are fine and run perfectly in the school but in most cases the SMBIOS data is not written, in the worst cases the uid on all the machines is identical causing havoc with active directory.
These machines usually show up in a hardware id program with the helpful system product name of “AMIBIOS” or something equally unhelpful if you are trying to connect a station name to a serial number. This also causes an issue if the serial number tag is removed from the system itself by the ever-present and destructive forces that inhabit your average school.
The Solution (caution, without proper care this can brick a motherboard):
The solution to this is actually not anywhere near as difficult as it seemed to be when I first encountered this issue. There exist small DOS based utilities that are specifically written to alter this information without the need to re-flash the machines in a manufacturing environment or manually edit a raw BIOS image. In the beginning the motherboard vendors actually used to provide the SMBIOS configuration utilities on their driver CDs, those days unfortunately seem to be over.
I searched through the web always finding just the scent of information that had once been posted but had moved on or been taken down. But through the bread crumbs that remained scattered through forums and caches I found the name of a file that contained the utilities that I was after. The seemingly mythic “BNOBTC v6” a collection of these utilities written about in many places but all of the links lead to no where. In search of this file I turned to my peers and hoped that they were in a sharing mood. A quick torrent search and download later the zip file packed full of utilities for the differing BIOS vendors was sitting on the hard drive. This collection weighs in at 226MB when extracted so I just dropped the whole lot onto a DOS bootable USB key.
There are different utilities for each main type of BIOS that are standard across the motherboards, for example Award BIOS, AMI Bios etc. After locating the latest version of the utility for my test machine, a AMI BIOS based system I the appropriate executable dmi236.exe into the root directory of the key for easy access then booted the machine off the USB key. To run this utility I simply typed in “dmi236 /p” (the /p is for Plug and Play detection) and edited the enclosure information as needed.
With this done the computer knows its own systems supplier serial number and can provide it upon request. In my situation is also means that my inventory VBS script can uniquely identify each machine and relate the station workstation name to the actual piece of hardware. It also logs how much memory is installed, hard disk usage and more but I will write more about that in another blog entry.
Total Trackbacks 0