Inventory Solution BIOS Version not always showing correct information.
Not all manufacturers configure WMI to allow the attribute "Version" to contain the version. The correct information is usually found in one of the values of the WMI attribute BiosVersion.
This issue has been reported to development.
A Custom Inventory can capture the additional data from BiosVersion, using this script:
'********************************************************************************
' NS7 Custinv to return the version from the win32_bios wmi class
' Written 12 January 2012
'********************************************************************************
'Create instance of Wbem service object, connect to namespace and run wmi query
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'===================================================================================================================
'Create instance of Altiris NSE component
dim nse
set nse = WScript.CreateObject ("Altiris.AeXNSEvent")
' Set the header data of the NSE
' Please don't modify this GUID
nse.To = "{1592B913-72F3-4C36-91D2-D4EDA21D2F96}"
nse.Priority = 1
'Create Inventory data block. Here assumption is that the data class with below guid is already configured on server
dim objDCInstance
set objDCInstance = nse.AddDataClass ("{5c55845a-6681-41ed-bf3a-a3141eee51d3}")
dim objDataClass
set objDataClass = nse.AddDataBlock (objDCInstance)
cnt=0
Set objCIMObj = objWMIService.ExecQuery("select * from Win32_bios")
For each objInfo in objCIMObj
'Add a new row
dim objDataRow
set objDataRow = objDataClass.AddRow
'Set columns
dt=objInfo.ReleaseDate
nsdt = left(dt,4) & "-" & mid(dt,5,2) & "-" & mid(dt,7,2) & " 00:00:00.000"
objDataRow.SetField 0, objInfo.Manufacturer
objDataRow.SetField 1, objInfo.BIOSVersion(1)
objDataRow.SetField 2, nsdt
objDataRow.SetField 3, objInfo.BuildNumber
objDataRow.SetField 4, objInfo.IdentificationCode
objDataRow.SetField 5, objInfo.Name
'
'Wscript.echo "Manufacturer: " & objInfo.Manufacturer
'Wscript.echo "Version: " & objInfo.BIOSVersion(1)
'Wscript.echo "ReleaseDate: " & nsdt
'Wscript.echo "BuildNumber: " & objInfo.BuildNumber
'Wscript.echo "IDCode: " & objInfo.IdentificationCode
'Wscript.echo "Name: " & objInfo.Name
Next
' Send the NSE data to the NS server
nse.SendQueued
''' End of vbscript main logic
NOTE: You must disable the original data class from your Inventory Policies, under Advanced Settings, by unchecking the BIOS data class under Hardware.
Applies To
Inventory Solution 7.1 SP1-SP2