Dell Hardware Patches Analyses/Relevance

I am looking for BigFix Analyses or BigFix relevance to find currently installed Dell hardware versions for items such as PERC, NIC, etc. with only Windows currently built in processes/options. I cannot install Dell Update Command or Dell OSMA on these servers but I still need to get the hardware versions. Does anyone have any analyses or relevance that can help me?

Is the 'BES Inventory and License' site available in your license dashboard? If so, the 'Hardware Information (Windows)' or 'Hardware Information (Linux)' Analyses probably retrieve what you are asking as far as hardware drivers & versions.

If you don't have that site, I'd probably start with WMI or DMI queries. Here's a start that should show the SCSI info (where you'd find PERC)

selects "* from Win32_SCSIController" of wmis

I do have that enabled, but it doesn’t pull in the hardware version and when I run the command you just gave me it is showing the version as blank.

Hm.
Any idea how you'd find it without BigFix? Is it in the Registry? File somewhere? Command output?

I was able to generate an XML but now I need to parse that to get the display name and version based on specific component IDs.

<SVMInventory lang="en" schemaVersion="1.0" timestamp="2026-01-28 11:44:06" invcolVersion="25.12.000 (BLD_37)" invcolBuild="37"> <OperatingSystem osVendor="Microsoft" osCode="WIN" osArch="x86" majorVersion="10" minorVersion="0" spMajorVersion="0" spMinorVersion="0" buildNumber="26100"/> <System systemID="0A6B"/> <Device display="DELL System Update" componentID="105861"> <Application display="DSU" version="0" componentType="APAC"/> </Device> <Device display="BIOS" componentID="159"> <Application display="BIOS" version="2.8.2" componentType="BIOS"/> </Device> <Device display="Power Supply" componentID="108024" enum="PS:0"> <Application display="Power Supply" version="00.18.31" componentType="FRMW"/> </Device> <Device display="Power Supply" componentID="108024" enum="PS:1"> <Application display="Power Supply" version="00.18.31" componentType="FRMW"/> </Device> <Device display="SEP Firmware" componentID="107649" enum="Bay ID =0"> <Application display="SEP Firmware, BayID: 0" version="7.10" componentType="FRMW"/> </Device> <Device display="SEP Firmware" componentID="107649" enum="Bay ID =1"> <Application display="SEP Firmware, BayID: 1" version="7.10" componentType="FRMW"/> </Device> </SVMInventory> 

I have tried using XPaths like this but it isn’t working. It gives me a Windows Error

node value of xpaths ("vendorID:a='1000'", "/a:SVMInventory/a:Device/@version") of xml document of file "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"

Any help would be appreciated

Hi @mikinvestigator , here’s some options you can work with:

Q: (node values of attributes "display" of it, node values of attributes "version" of it) of child nodes whose (node name of it = "Application") of selects "/SVMInventory/Device" of xml document of files "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"
A: DSU, 0
A: BIOS, 2.8.2
A: Power Supply, 00.18.31
A: Power Supply, 00.18.31
A: ( SEP Firmware, BayID: 0 ), 7.10
A: ( SEP Firmware, BayID: 1 ), 7.10
T: 1.166 ms
I: plural ( string, string )
//Example with componentID = 107649
Q: (node values of attributes "display" of it, node values of attributes "version" of it) of child nodes whose (node name of it = "Application") of selects "/SVMInventory/Device[@componentID='107649']" of xml document of file "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"
A: ( SEP Firmware, BayID: 0 ), 7.10
A: ( SEP Firmware, BayID: 1 ), 7.10
T: 0.557 ms
I: plural ( string, string )

Is there a way to get the device Display and not the application display?

Hi @mikinvestigator, how about this example below:

Q: (node values of attributes "display" of it, node values of attributes "version" of child nodes whose (node name of it = "Application") of it) of selects "/SVMInventory/Device[@componentID='159']" of xml document of files "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"
A: BIOS, 2.8.2
T: 1.030 ms
I: plural ( string, string )
Q: (node values of attributes "display" of it, node values of attributes "version" of child nodes whose (node name of it = "Application") of it) of selects "/SVMInventory/Device[@componentID='105861']" of xml document of files "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"
A: DELL System Update, 0
T: 0.518 ms
I: plural ( string, string )

All that "/a:" declaration you're doing, as well as the second field in the xpaths(<query>, <namespace>) is for XML documents with namespace definitions, which this one doesn't seem to have. Namespaces would come from XML with one or more xmlns:prefix="namespace_uri", usually in the XML declaration at the top of the document. There's a decent explanation at XML Namespaces

Without namespaces defined in this document, you shouldn't try to use the two-property version for 'xpaths' or any of the '/a:' namespace prefixes. Instead I think the following maybe helpful XML tips

node value of xpaths ("vendorID:a='1000'", "/a:SVMInventory/a:Device/@version") of xml document of file "C:\Program Files (x86)\BigFix Enterprise\BES Client\Inventory.xml"


// Get name of top-level element
q: node names of child nodes of xml document of file "c:\temp\test.xml"
A: SVMInventory
I: plural string

// We can get an xpath directly to that top-level element
q: node names of xpaths ("/SVMInventory") of xml document of file "c:\temp\test.xml"
A: SVMInventory
I: plural string

// find the child nodes of that top-level element
q: node names of child nodes of xpaths ("/SVMInventory") of xml document of file "c:\temp\test.xml"
A: OperatingSystem
A: System
A: Device
A: Device
A: Device
A: Device
A: Device
A: Device
I: plural string

// We can keep iterating to find valid paths
q: node names of child nodes of xpaths ("/SVMInventory/Device") of xml document of file "c:\temp\test.xml"
A: Application
A: Application
A: Application
A: Application
A: Application
A: Application
I: plural string

// Or, at the 'Device' level we can retrieve Attributes
// Attributes, like most things XML, have 'node names' and 'node values'

q: node names of attributes of xpaths ("/SVMInventory/Device") of xml document of file "c:\temp\test.xml"
A: display
A: componentID
A: display
A: componentID
A: display
A: componentID
A: enum
A: display
A: componentID
A: enum
A: display
A: componentID
A: enum
A: display
A: componentID
A: enum
I: plural string

q: (node name of it, node value of it) of attributes of xpaths ("/SVMInventory/Device") of xml document of file "c:\temp\test.xml"
A: display, DELL System Update
A: componentID, 105861
A: display, BIOS
A: componentID, 159
A: display, Power Supply
A: componentID, 108024
A: enum, PS:0
A: display, Power Supply
A: componentID, 108024
A: enum, PS:1
A: display, SEP Firmware
A: componentID, 107649
A: enum, Bay ID =0
A: display, SEP Firmware
A: componentID, 107649
A: enum, Bay ID =1
I: plural ( string, string )

// Or, same from the 'SVMInventory/Device/Application' nodes...
q: (node name of it, node value of it) of attributes of xpaths ("/SVMInventory/Device/Application") of xml document of file "c:\temp\test.xml"
A: display, DSU
A: version, 0
A: componentType, APAC
A: display, BIOS
A: version, 2.8.2
A: componentType, BIOS
A: display, Power Supply
A: version, 00.18.31
A: componentType, FRMW
A: display, Power Supply
A: version, 00.18.31
A: componentType, FRMW
A: display, ( SEP Firmware, BayID: 0 )
A: version, 7.10
A: componentType, FRMW
A: display, ( SEP Firmware, BayID: 1 )
A: version, 7.10
A: componentType, FRMW
I: plural ( string, string )

// The original query you had, looking for some vendorID of '1000', doesn't appear in your test data.  So I'm not exactly sure what you want, but here are some things that maybe useful.
// The 'display', 'version', and 'componentType' only:

q: (node value of attribute "display" of it, node value of attribute "version" of it, node value of attribute "componentType" of it) of xpaths ("/SVMInventory/Device/Application") of xml document of file "c:\temp\test.xml"
A: DSU, 0, APAC
A: BIOS, 2.8.2, BIOS
A: Power Supply, 00.18.31, FRMW
A: Power Supply, 00.18.31, FRMW
A: ( SEP Firmware, BayID: 0 ), 7.10, FRMW
A: ( SEP Firmware, BayID: 1 ), 7.10, FRMW
I: plural ( string, string, string )

// If, for example, we wanted to filter to 'Power Supply', we can do that a couple of ways.  We can either use the relevance structure `(objects) whose (filter)`, or, if one is more familiar with XML processing in other languages, can use the 'xpath' filters which are pretty robust in BigFix

q: (node value of attribute "display" of it, node value of attribute "version" of it, node value of attribute "componentType" of it) whose (item 0 of it = "Power Supply") of xpaths ("/SVMInventory/Device/Application") of xml document of file "c:\temp\test.xml"
A: Power Supply, 00.18.31, FRMW
A: Power Supply, 00.18.31, FRMW
I: plural ( string, string, string )

q: (node value of attribute "display" of it, node value of attribute "version" of it, node value of attribute "componentType" of it) of xpaths ("/SVMInventory/Device/Application[@display='Power Supply']") of xml document of file "c:\temp\test.xml"
A: Power Supply, 00.18.31, FRMW
A: Power Supply, 00.18.31, FRMW
I: plural ( string, string, string )