We could spend all day taking screen shots and Polaroid pictures of the BIOS on workstations. We COULD do that.
Or we could let Powershell and the Dell OMCI do the work.
Bios settings are stored in DCIM-BiosEnumeration. But initially if you just did this
GET-WMIOBJECT DCIM-BiosEnumeration –namespace rootdcimsysman
You’d have an unreadable screen. Piping it into a Format-Table like this ALSO doesn’t help
GET-WMIOBJECT DCIM-BiosEnumeration –namespace rootdcimsysman | FORMAT-TABLE
Because of the volume of data being returned. Most of it I just don’t CARE what it is. So I’ll save you the trouble. I ran a GET-MEMBER on my machine to show the properties you care about
GET-WMIOBJECT DCIM-BiosEnumeration –namespace rootdcimsysman | GET-MEMBER
Once I poked through the list I found the ones that seem to yield information consistently. They are
AttributeName which is the name of the BIOS Setting
CurrentValue which is what it is set to now (numeric)
PossibleValues which is possible numeric values the BIOS Setting can have
PossibleValuesDescription which shows you the names DESCRIBING what those silly numbers mean
So running this script on a computer
Get-WmiObject -Namespace rootdcimsysman DCIM-BiosEnumeration | Select-Object AttributeName,CurrentValue,PossibleValues,PossibleValuesDescription
Will show me all the settings on a Dell computer. If I make a slight change and turn this into a script called GET-DELLBIOS.PS1
Get-WmiObject -Namespace rootdcimsysman DCIM-BiosEnumeration –computername $Computername | Select-Object AttributeName,CurrentValue,PossibleValues,PossibleValuesDescription
I can now run a script with the –computername parameter and gather an inventory of all my Dell systems and their particular settings.
GET-DELLBIOS.PS1 –computername myremotecomputername
Pretty cool eh? Now go forth and use your powers wisely.
With Great Powershell comes Great Responsibility
the Energized Tech