Inventory Solution BIOS Version not always showing correct information


Article ID: 155834


Updated On:


Altiris Software Development Kit (ASDK)


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)
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
            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
' Send the NSE data to the NS server
''' 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