Software Inventory - File Details and Software Components

book

Article ID: 178480

calendar_today

Updated On:

Products

Inventory Solution for Unix/Linux Inventory Solution Inventory Solution for Mac

Issue/Introduction

 

Resolution

 Software inventory consists of at least two types of details. They are: 

  1. File details – provides basic file information, i.e., name, size, location, version, etc. This information is related to computers and their inventory data. 
  2. Software component details – Allows for managing software products in the Software Catalog. This information is not associated with an end-point computer. 

 

Different inventory processes populate these two types of details. On the Unix, Linux and Mac (ULM) systems, there are three methods for gathering software inventory. They are:  

Process

Description

File Details

Software Components

All inventory processes

Gathers native software package information, e.g., the rpm database, pkgutil (mac), etc.

Yes

Yes

File Properties

Inventory task/policy option that initiates the use of the filescan.rule file on ULM clients.

Yes

Yes

 File rule

Advanced settings in an inventory task or policy that allow for including/excluding files based on various parameters.  The data for software components is not available for this file-only type of inventory.

Yes

No

 

 

Tables, Views and their Relationships

Following are a few tables and views containing the file details and software component details. Also, the table that associates the two types of data is listed.

File detail tables:

  • Inv_Installed_File_Details
  • Inv_File_Details
  • RM_Resourcefile

 

Software Component tables: and views

  • Inv_InstalledSoftware
  • Inv_Software_Component
  • vSoftwareComponent

 

The association table between the two types of tables is:

  • ResourceAssociation.ChildResourceGuid  - contains the file details guid.
  • ResourceAssociation.ParentResourceGuid – contains the software component guid.

 Note: By querying for a file detail guid in the ResourceAssociation.ChildResourceGuid attribute, the corresponding software component guid can be found in the db record's ParentResourceGuid attribute. The ParentResourceGuid can then be used to find additional software component data. 

 

File Detail and Software Component Table Relationships

Following is a description of these tables showing their related attributes (columns). Note that the attributes in the same column have the same guid value. Therefore, tables can be joined using the attribute names in the same column.

File and software component data

Table

Column for file-related table

Column for Software Component-related table

Inv_Installed_File_Details

fileresourceguid

 

Inv_File_Details

_resourceguid

 

ResourceAssociation

childresourceguid

parentresourceguid

vSoftwareComponent

 

guid

Inv_Software_Component

 

_resourceguid

 

File and software component data 

Table

File Attributes

Software Component Attributes

RM_Resourcefile

guid

 

Inv_Installed_File_Details

fileresourceguid

 

ResourceAssociation

childresourceguid

parentresourceguid

vSoftwareComponent

 

guid

 

Software Component data only

Table

Software Component Attributes

Inv_installedSoftware

_softwarecomponentguid

Inv_software_component

_resourceguid

vSoftwareComponent

guid

 

Other tables 

 This is a sample of other tables related to file and software component data: 

  • Inv_symantec_common_agent_discovery_details._resourceguid
  • Inv_symantec_UNIX_RPMPackageInfo.softwarecomponentguid
  • Inv_software_component_state._resourceguid (contains IsManaged flag)
  • RM_ResourceSoftware_Product.guid

 

Sample SQL queries

Note that left outer joins were used in case software components and resource associations are not yet created.

Starting with inv_installed_file_details (File and software component data)

select vc.name, vsc.name, ifd.name, isc.version, ra.*, ifd.fileresourceguid, ifdet.filesize, ifdet.fileextension
   from inv_installed_file_details ifd
   join vcomputer vc on vc.guid = ifd._resourceguid
   join resourceassociation ra on ifd.fileresourceguid = ra.childresourceguid
   join vsoftwarecomponent vsc on vsc.guid = ra.parentresourceguid
   left outer join inv_software_component isc on isc._resourceguid = vsc.guid
   left outer join inv_file_details ifdet on ifdet._resourceguid = ifd.fileresourceguid  
   where vsc.name like 'websphere%'
   order by ifd.fileresourceguid

Starting with RM_ResourceFile (File and software component data) 

select vc.name, rf.guid, vsc.name, ifd.name
   from [RM_ResourceFile] rf
   left outer join resourceassociation ra on ra.childresourceguid = rf.guid
   left outer join vsoftwarecomponent vsc on vsc.guid = ra.parentresourceguid
   left outer join inv_installed_file_details ifd on ifd.fileresourceguid = rf.guid
   join vcomputer vc on vc.guid = ifd._resourceguid
   where rf.NAME like '%websphere%'

Starting with Inv_InstalledSoftware (Software Component data only)

select vc.name "ComputerName", pu.[user] "UserName", vsc.name, isc.version, iis.installdate, iis._softwarecomponentguid, vc.[os name]
   from vcomputer  vc
   left outer join inv_aex_ac_primary_user pu on vc.guid = pu._resourceguid
   join inv_installedsoftware  iis on iis._resourceguid = vc.guid
   left outer join inv_software_component isc on isc._resourceguid = iis._softwarecomponentguid
   left outer join vsoftwarecomponent     vsc on vsc.guid = iis._softwarecomponentguid
   where vsc.name like 'Microsoft Office Shared MUI%'
   order by vc.name, vsc.name, isc.version