Client Management Suite

 View Only

Creating a Hardware Chassis Type View 

Dec 27, 2010 04:48 PM

In NS6 you were able to easily get the type of case or chassis a computer reported from BIOS. In NS7 this information is collected and stored in the Inv_HW_Chassis table as the very intuitive "Chassis Package Type". Unfortunately, the value is just a number. It occurred to me that I could use a "Case/When" convention in my SQL query to convert this number to the human-readable name, like "Desktop" or "Rack Mount", but there are 24 different types, and putting that in any query that needed the information seemed cumbersome.

Instead, I decided to create a new View in SQL to provide this data. Then querying it would become trivial. I elected to follow the naming convention already in use and call it "vHWChassisType", but you may want to use a prefix or other tag to differentiate it as a custom view. In short, run the following SQL query (also attached - rename to .sql) to add the view to your database, and then you can include the chassis type in any reports you may have.

USE [Symantec_CMDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vHWChassisType] 
AS 
SELECT  
   Inv_HW_Logical_Device.[_ResourceGuid] , 
   Inv_HW_Chassis.[Audible Alarm], 
   Inv_HW_Chassis.[Chassis Package Type], 
   Inv_HW_Chassis.[Lock Present], 
   Inv_HW_Chassis.[Part Number], 
   Inv_HW_Chassis.[Security Breach], 
   Inv_HW_Chassis.[Security Status], 
   Inv_HW_Chassis.[Serial Number], 
   Inv_HW_Logical_Device.[Description], 
   Inv_HW_Logical_Device.[Device Class], 
   Inv_HW_Logical_Device.[Manufacturer], 
   Inv_HW_Logical_Device.[Model], 
   Inv_HW_Logical_Device.[Device ID],
   Inv_HW_Chassis.[Asset Tag],
 Case When Inv_HW_Chassis.[Chassis Package Type] = 1 Then 'Other'
  When Inv_HW_Chassis.[Chassis Package Type] = 2 Then 'Unknown'
  When Inv_HW_Chassis.[Chassis Package Type] = 3 Then 'Desktop'
  When Inv_HW_Chassis.[Chassis Package Type] = 4 Then 'Low Profile'
  When Inv_HW_Chassis.[Chassis Package Type] = 5 Then 'Pizza Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 6 Then 'Mini Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 7 Then 'Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 8 Then 'Portable'
  When Inv_HW_Chassis.[Chassis Package Type] = 9 Then 'Laptop'
  When Inv_HW_Chassis.[Chassis Package Type] = 10 Then 'Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 11 Then 'Hand Held'
  When Inv_HW_Chassis.[Chassis Package Type] = 12 Then 'Docking Station'
  When Inv_HW_Chassis.[Chassis Package Type] = 13 Then 'All in One'
  When Inv_HW_Chassis.[Chassis Package Type] = 14 Then 'Sub Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 15 Then 'Space-Saving'
  When Inv_HW_Chassis.[Chassis Package Type] = 16 Then 'Lunch Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 17 Then 'Main System'
  When Inv_HW_Chassis.[Chassis Package Type] = 18 Then 'Expansion Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 19 Then 'Sub Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 20 Then 'Bus Expansion'
  When Inv_HW_Chassis.[Chassis Package Type] = 21 Then 'Peripheral Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 22 Then 'Storage Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 23 Then 'Rack Mount'
  When Inv_HW_Chassis.[Chassis Package Type] = 24 Then 'Sealed-Case PC' End as [Chassis Type]
FROM Inv_HW_Logical_Device INNER JOIN Inv_HW_Chassis ON  
Inv_HW_Logical_Device.[Device ID] = Inv_HW_Chassis.[Device ID]  
AND Inv_HW_Logical_Device.[_ResourceGuid] = Inv_HW_Chassis.[_ResourceGuid]

That's it. Just query against this view and you can get the chassis type of any computer that has reported hardware inventory:

SELECT Top 10
c.[Name], t.[Chassis Type]
FROM vComputer c
JOIN vHWChassisType t On c.[Guid] = t.[_ResourceGuid]
WHERE c.[IsManaged] = 1

Statistics
0 Favorited
4 Views
1 Files
0 Shares
0 Downloads
Attachment(s)
txt file
vHWChassisType.txt   5 KB   1 version
Uploaded - Feb 25, 2020

Tags and Keywords

Comments

Feb 11, 2019 03:36 PM

this is very old and i did implement it.. but something that was never stated..

once you set it up, do you have to run anything to keep the view up to date?

i just ran it on my prod DB and umm yeah ive got 15 machines out of 4600 that have any info!!!!!!!!

 

im setting up new in 8.5 so time to figure it out and make sure i got it right....

Feb 26, 2018 09:40 AM

It's my understanding that only the vendor has the tools to make changes their information. In cases like this, it would be better to engage the vendor to have them correct the source of the problem. That way, you don't have workarounds that will constantly be changing.

Aug 23, 2017 07:50 AM

so i used this and works great; however, what do you do if a vendor uses a chassis type number that is really incorrect? is there a way to change where chassis type info is pulled on the machine, change it physically on the machine?

 

we have a vendor who has computers built into an instrument and all of the others have been a 3 (Desktop) but the latest came over as a 10 (NoteBook)...

GRRRRR

Apr 01, 2016 07:45 AM

Its working Shauck.  Thanks you very much.

 

Regards,

Sam

Apr 01, 2016 07:37 AM

SELECT  
   Inv_HW_Logical_Device.[_ResourceGuid] , 
   vComputer.[Name],
   vComputer.[User],
   Inv_HW_Chassis.[Audible Alarm], 
   Inv_HW_Chassis.[Chassis Package Type], 
   Inv_HW_Chassis.[Lock Present], 
   Inv_HW_Chassis.[Part Number], 
   Inv_HW_Chassis.[Security Breach], 
   Inv_HW_Chassis.[Security Status], 
   Inv_HW_Chassis.[Serial Number], 
   Inv_HW_Logical_Device.[Description], 
   Inv_HW_Logical_Device.[Device Class], 
   Inv_HW_Logical_Device.[Manufacturer], 
   Inv_HW_Logical_Device.[Model], 
   Inv_HW_Logical_Device.[Device ID],
   Inv_HW_Chassis.[Asset Tag],
 Case When Inv_HW_Chassis.[Chassis Package Type] = 1 Then 'Other'
  When Inv_HW_Chassis.[Chassis Package Type] = 2 Then 'Unknown'
  When Inv_HW_Chassis.[Chassis Package Type] = 3 Then 'Desktop'
  When Inv_HW_Chassis.[Chassis Package Type] = 4 Then 'Low Profile'
  When Inv_HW_Chassis.[Chassis Package Type] = 5 Then 'Pizza Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 6 Then 'Mini Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 7 Then 'Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 8 Then 'Portable'
  When Inv_HW_Chassis.[Chassis Package Type] = 9 Then 'Laptop'
  When Inv_HW_Chassis.[Chassis Package Type] = 10 Then 'Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 11 Then 'Hand Held'
  When Inv_HW_Chassis.[Chassis Package Type] = 12 Then 'Docking Station'
  When Inv_HW_Chassis.[Chassis Package Type] = 13 Then 'All in One'
  When Inv_HW_Chassis.[Chassis Package Type] = 14 Then 'Sub Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 15 Then 'Space-Saving'
  When Inv_HW_Chassis.[Chassis Package Type] = 16 Then 'Lunch Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 17 Then 'Main System'
  When Inv_HW_Chassis.[Chassis Package Type] = 18 Then 'Expansion Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 19 Then 'Sub Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 20 Then 'Bus Expansion'
  When Inv_HW_Chassis.[Chassis Package Type] = 21 Then 'Peripheral Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 22 Then 'Storage Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 23 Then 'Rack Mount'
  When Inv_HW_Chassis.[Chassis Package Type] = 24 Then 'Sealed-Case PC' End as [Chassis Type]
FROM Inv_HW_Logical_Device 
INNER JOIN Inv_HW_Chassis ON  
Inv_HW_Logical_Device.[Device ID] = Inv_HW_Chassis.[Device ID]  
AND Inv_HW_Logical_Device.[_ResourceGuid] = Inv_HW_Chassis.[_ResourceGuid]
LEFT JOIN vComputer ON vComputer.[Guid] = Inv_HW_Logical_Device.[_ResourceGuid]

 

Apr 01, 2016 12:28 AM

Hi All,

I'm new to SQL and need some help in modifying the above query.

Have copied from Select distinct line and got a basic report. But would like to add computer name and primary user to the above query.

Your help on this would be much appreciated.

 

Thanks,

Sam

 

 

Aug 11, 2015 10:48 AM

Great view, mjohnson. ;) We needed to change SELECT to SELECT DISTINCT due to Symantec's tables including duplicate data.

USE [Symantec_CMDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vHWChassisType] 
AS 
SELECT DISTINCT
   Inv_HW_Logical_Device.[_ResourceGuid] , 
   Inv_HW_Chassis.[Audible Alarm], 
   Inv_HW_Chassis.[Chassis Package Type], 
   Inv_HW_Chassis.[Lock Present], 
   Inv_HW_Chassis.[Part Number], 
   Inv_HW_Chassis.[Security Breach], 
   Inv_HW_Chassis.[Security Status], 
   Inv_HW_Chassis.[Serial Number], 
   Inv_HW_Logical_Device.[Description], 
   Inv_HW_Logical_Device.[Device Class], 
   Inv_HW_Logical_Device.[Manufacturer], 
   Inv_HW_Logical_Device.[Model], 
   Inv_HW_Logical_Device.[Device ID],
   Inv_HW_Chassis.[Asset Tag],
 Case When Inv_HW_Chassis.[Chassis Package Type] = 1 Then 'Other'
  When Inv_HW_Chassis.[Chassis Package Type] = 2 Then 'Unknown'
  When Inv_HW_Chassis.[Chassis Package Type] = 3 Then 'Desktop'
  When Inv_HW_Chassis.[Chassis Package Type] = 4 Then 'Low Profile'
  When Inv_HW_Chassis.[Chassis Package Type] = 5 Then 'Pizza Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 6 Then 'Mini Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 7 Then 'Tower'
  When Inv_HW_Chassis.[Chassis Package Type] = 8 Then 'Portable'
  When Inv_HW_Chassis.[Chassis Package Type] = 9 Then 'Laptop'
  When Inv_HW_Chassis.[Chassis Package Type] = 10 Then 'Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 11 Then 'Hand Held'
  When Inv_HW_Chassis.[Chassis Package Type] = 12 Then 'Docking Station'
  When Inv_HW_Chassis.[Chassis Package Type] = 13 Then 'All in One'
  When Inv_HW_Chassis.[Chassis Package Type] = 14 Then 'Sub Notebook'
  When Inv_HW_Chassis.[Chassis Package Type] = 15 Then 'Space-Saving'
  When Inv_HW_Chassis.[Chassis Package Type] = 16 Then 'Lunch Box'
  When Inv_HW_Chassis.[Chassis Package Type] = 17 Then 'Main System'
  When Inv_HW_Chassis.[Chassis Package Type] = 18 Then 'Expansion Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 19 Then 'Sub Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 20 Then 'Bus Expansion'
  When Inv_HW_Chassis.[Chassis Package Type] = 21 Then 'Peripheral Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 22 Then 'Storage Chassis'
  When Inv_HW_Chassis.[Chassis Package Type] = 23 Then 'Rack Mount'
  When Inv_HW_Chassis.[Chassis Package Type] = 24 Then 'Sealed-Case PC' End as [Chassis Type]
FROM Inv_HW_Logical_Device INNER JOIN Inv_HW_Chassis ON  
Inv_HW_Logical_Device.[Device ID] = Inv_HW_Chassis.[Device ID]  
AND Inv_HW_Logical_Device.[_ResourceGuid] = Inv_HW_Chassis.[_ResourceGuid]

Aug 22, 2012 09:50 AM

Thank you for this.. I was going down this path.. in NS6 we have an automation policy that I had to track backwards.. it is a long cumbersome setup.. but end result is that the basis of it is a collection by type... 

 

Ok update.. deleted my question.. so mainly i can use this as a report.. then i can call off of it..

thanks!

 

Related Entries and Links

No Related Resource entered.