How does ITCM determine the System Type in the agent inventory?


Article ID: 16904


Updated On:


CA Automation Suite for Data Centers - Configuration Automation CA Client Automation - Asset Management CA Client Automation - IT Client Manager CA Client Automation CA Client Automation - Remote Control CA Client Automation - Asset Intelligence CA Client Automation - Desktop Migration Manager CA Client Automation - Patch Manager


How does ITCM determine the System Type in the agent inventory?

<Please see attached file for image>



Client Automation (ITCM) -- All versions


The system type is determined by a field read from the system bios, known as the system enclosure type or chassis type.  Reference MSDN article:

The following vbs script can be run to read the same value via a WMI call:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _ 
"SELECT * FROM Win32_SystemEnclosure",,48) 
For Each objItem in colItems 
Wscript.Echo "-----------------------------------" 
Wscript.Echo "Win32_SystemEnclosure instance" 
Wscript.Echo "-----------------------------------" 
If isNull(objItem.ChassisTypes) Then 
Wscript.Echo "ChassisTypes: " 
Wscript.Echo "ChassisTypes: " & Join(objItem.ChassisTypes, ",") 
End If 


The return value of the script can be aligned with the ChasisType values listed in the MSDN article:

Other (1)
Unknown (2)
Desktop (3)
Low Profile Desktop (4)
Pizza Box (5)
Mini Tower (6)
Tower (7)
Portable (8)
Laptop (9)
Notebook (10)
Hand Held (11)
Docking Station (12)
All in One (13)
Sub Notebook (14)
Space-Saving (15)
Lunch Box (16)
Main System Chassis (17)
Expansion Chassis (18)
SubChassis (19)
Bus Expansion Chassis (20)
Peripheral Chassis (21)
Storage Chassis (22)
Rack Mount Chassis (23)
Sealed-Case PC (24)

Additional Information

The System "Type" field can be queried using the ITCM Query Designer:

<Please see attached file for image>

User-added image

<Please see attached file for image>

User-added image

Alternatively, the same can be seen captured by a SQL query:
select distinct dh.host_name,
from ca_discovered_hardware dh
inner join inv_generalinventory_item gi on gi.object_uuid=dh.dis_hw_uuid
inner join inv_tree_name_id parent on parent.tree_name_id=gi.item_parent_name_id
inner join inv_item_name_id child on child.item_name_id=gi.item_name_id
and parent.tree_name='$System$'
and child.item_name='Type'
order by dh.host_name


1558700302662000016904_sktwi1f5rjvs16k2s.png get_app
1558700300750000016904_sktwi1f5rjvs16k2r.png get_app
1558700298776000016904_sktwi1f5rjvs16k2q.png get_app