Inventory Solution BIOS Version not always showing correct information

book

Article ID: 155834

calendar_today

Updated On:

Products

Altiris Software Development Kit (ASDK)

Issue/Introduction

Inventory Solution BIOS Version not always showing correct information.

Cause

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.

Resolution

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