Software inventory consists of at least two types of details. They are:
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:
Software Component tables: and views
The association table between the two types of tables is:
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.
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 |
Table |
File Attributes |
Software Component Attributes |
RM_Resourcefile |
guid |
|
Inv_Installed_File_Details |
fileresourceguid |
|
ResourceAssociation |
childresourceguid |
parentresourceguid |
vSoftwareComponent |
|
guid |
Table |
Software Component Attributes |
Inv_installedSoftware |
_softwarecomponentguid |
Inv_software_component |
_resourceguid |
vSoftwareComponent |
guid |
Note that left outer joins were used in case software components and resource associations are not yet created.
select vc.name, vsc.name, ifd.name, isc.version, ra.*, ifd.fileresourceguid, ifdet.filesize, ifdet.fileextension
select vc.name, rf.guid, vsc.name, ifd.name
left outer join resourceassociation ra on ra.childresourceguid = rf.guid
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