Dont need custom inventory when Altiris has been picking up monitor serial number info for 15 years - this one breaks out the 2nd, thorugh 6th monitor into different columns. sometimes when a new set of dual monitors replaces a old set you will get 4 monitor serial numbers in this report
select distinct select distinct ac.name,
ac.[OS Name] AS 'OS Name',
convert(varchar, ac.[client date], 101) as 'ScanDate', CASE when (ac.Name = prime.[primary user]) then 'Clinical Machine' else 'Information Worker' end as 'Machine Type',
vasset.Manufacturer,vAsset.Model,vAsset.[Serial Number],vc.[IP Address],vAsset.[Status],convert(varchar, ci.[Date],101)as 'Purchase Date', convert(varchar,mr.[Invoice Date],101) as 'Invoice Date', datepart(month,(convert(varchar,mr.[Invoice Date],101))) as 'month date invoice', datepart(year,(convert(varchar,mr.[Invoice Date],101))) as 'year date invoice',mr.[Warrenty End Date], convert(varchar,mr.[Warrenty End Date],101) as 'Invoice Date', datepart(month,(convert(varchar,mr.[Warrenty End Date],101))) as 'month date Warr End', datepart(year,(convert(varchar, mr.[Warrenty End Date],101))) as 'year date Warr End',mr.Hospital, convert(varchar,os.[Last Boot Up Time],101) as 'Last Boot Up', convert(varchar,os.[Install Date],101) as 'OS Install Date', --ac.[OS Type],--ac.[OS Version],
COALESCE(case when office1.[Display Version]='14' then 'Office 2010' ELSE NUll end, case when office1.[Display Version] ='15' then 'Office 2013' ELSE NUll end, case when office1.[Display Version] = '9.' then 'Office 2000'ELSE NUll end, case when office1.[Display Version] = '11' then 'Office 2003'ELSE NUll end, case when office1.[Display Version] = '12' then 'Office 2007'ELSE NUll end) as 'Office Name' , office1.[Display Version] as 'Office Version',Prime.[primary user], T20.[Given Name] as 'First Name', ISNULL(T20.[Surname],'') AS 'Last Name', T20.[office telephone], T20.department,
CASE WHEN LOWER (i.[System Type]) LIKE 'win32' THEN '32-bit' ELSE '64-bit' END 'Architecture [32/64-bit]',hp.[Max Clock Speed (Mega-hertz)] / (1000) [CPU Speed (GHz)],a.[Hard DISK Size] [Hard Drive Total (GB)],ISNULL (b.[Hard Disk Free Space], 0) [Hard Drive Free (GB)],ISNULL (CAST (c.[Video Memory] AS NVARCHAR (MAX)),0) [Video memory (MB)],CAST (hpm.[Total Physical Memory (Bytes)] / (1024.0 * 1024.0) AS DECIMAL (10,2)) [Memory (MB)],
CASE when (CAST (hpm.[Total Physical Memory (Bytes)] / (1024.0 * 1024.0) AS DECIMAL (10,2))<4000) then 'Add Mem' else 'No MEM needed' end as 'Add MBB' , --attemp to qualify what mem is in what slot CAST (mem0.[Capacity (Bytes)]/ (1024.0 * 1024.0) AS DECIMAL (10,2)) as 'slot1' , mem0.[device id], CAST (mem1.[Capacity (Bytes)]/ (1024.0 * 1024.0) AS DECIMAL (10,2)) as 'slot2' , mem1.[device id], CAST (mem2.[Capacity (Bytes)]/ (1024.0 * 1024.0) AS DECIMAL (10,2)) as 'slot3' , mem2.[device id], CAST (mem3.[Capacity (Bytes)]/ (1024.0 * 1024.0) AS DECIMAL (10,2)) as 'slot4' , mem3.[device id] ,
mon1.[Device ID]as 'Mon1 Id', mon1.[video input mode] as 'Mon1', mon1.[serial number] as 'Mon1 SN', mon1.[manufacturing date] as 'mon1 man date', mon2.[Device ID]as 'Mon2 ID', mon2.[video input mode] as 'Mon2', mon2.[serial number] as 'Mon2 SN', mon2.[manufacturing date] as 'mon2 man date', mon3.[Device ID]as 'Mon3 Id', mon3.[video input mode] as 'Mon3', mon3.[serial number] as 'Mon3 SN', mon3.[manufacturing date] as 'mon3 man date', mon4.[Device ID]as 'Mon4 ID', mon4.[video input mode] as 'Mon4', mon4.[serial number] as 'Mon4 SN', mon4.[manufacturing date] as 'mon4 man date', mon5.[Device ID]as 'Mon5 Id', mon5.[video input mode] as 'Mon5', mon5.[serial number] as 'Mon5 SN', mon5.[manufacturing date] as 'mon5 man date', mon6.[Device ID]as 'Mon6 ID', mon6.[video input mode] as 'Mon6', mon6.[serial number] as 'Mon6 SN', mon6.[manufacturing date] as 'mon6 man date', mon7.[Device ID]as 'Mon7 ID', mon7.[video input mode] as 'Mon7', mon7.[serial number] as 'Mon7 SN', mon7.[manufacturing date] as 'mon7 man date'
FROM dbo.Inv_AeX_AC_Identification ac left JOIN vcomputer i ON i.Guid = ac._ResourceGuid left join vAsset on vasset._ResourceGuid = ac._ResourceGuidleft join [Import_Database].[dbo].[Moredirect] mr on mr.[serial number] = vAsset.[Serial Number] left join vComputer vc on vc.Guid =ac._ResourceGuid left join ( select MAX (Left(prog.DisplayVersion,2))as 'Display Version', i.[guid] FROM dbo.vComputer i INNER JOIN dbo.Inv_AddRemoveProgram prog ON i.[Guid]= prog._ResourceGuid where ( prog.DisplayName ='Microsoft Office Professional Plus 2007' or prog.DisplayName ='Microsoft Office Professional Plus 2010'or prog.DisplayName ='Microsoft Office Professional Edition 2003' or prog.DisplayName ='Microsoft Office 2010'or prog.DisplayName ='Microsoft Office Standard 2010' or prog.DisplayName ='Microsoft Office 2000 SR-1 Professional'or prog.DisplayName ='2007 Microsoft Office system' or prog.DisplayName ='Microsoft Office Enterprise 2007'or prog.DisplayName ='Microsoft Office Basic Edition 2003' or prog.DisplayName ='Microsoft Office 2000 SR-1 Disc 2' or prog.DisplayName ='Microsoft Office Professional Plus 2013' )group by i.guid ) office1 on i.Guid =office1.[guid] left join (SELECT _ResourceGuid, MAX([user]) AS [primary user] FROM dbo.Inv_AeX_AC_Primary_User WHERE ([User] IS NOT NULL) AND ([User] <> '') GROUP BY _ResourceGuid ) Prime on ac._resourceguid = Prime._ResourceGuidLEFT JOIN (select distinct vuser.* from vuser where [Given Name] !='' )t20 ON Prime.[primary user] = T20.name left JOIN dbo.Inv_HW_Processor hp ON hp._ResourceGuid = i.Guidleft JOIN dbo.vHWComputerSystem hpm ON hpm._ResourceGuid = i.Guidleft join Inv_OS_Operating_System os on vc.Guid = os._ResourceGuidleft JOIN (SELECT CAST (SUM ([Max Media Size (Kilobytes)] / (1024.0 * 1024.0)) AS DECIMAL (10,2)) [Hard DISK Size],_ResourceGuid FROM vHWStorage WHERE [Media Type] = 29 GROUP BY _ResourceGuid) a ON a._ResourceGuid = i.Guidleft JOIN (SELECT MAX (t.[Hard Disk Free Space]) [Hard Disk Free Space], t.Guid FROM (SELECT ld._ResourceGuid AS Guid, CAST (SUM (ld.[Free Space (Bytes)] / (1024.0 * 1024.0 * 1024.0)) AS DECIMAL (10,2)) AS 'Hard Disk Free Space', ld.[Device ID] FROM dbo.vHWLogicalDisk ld JOIN dbo.vHWLogicalDiskBasedOnPartition ld1 ON ld._ResourceGuid = ld1._ResourceGuid AND ld.[Device ID] = ld1.Dependent JOIN dbo.vHWStorageToDiskPartition s1 ON s1._ResourceGuid = ld._ResourceGuid AND (s1.Dependent = ld1.Antecedent OR s1.Dependent = ld.[Device ID]) JOIN dbo.vHWStorage sh ON sh._ResourceGuid = s1._ResourceGuid AND sh.[Device ID] = s1.Antecedent AND sh.[Media Type] = 29 GROUP BY ld._ResourceGuid, ld.[Device ID])t GROUP BY t.Guid) b ON b.Guid = i.GuidLEFT JOIN (SELECT CAST (MAX ([Adapter RAM (Bytes)] / (1024.0 * 1024.0)) AS DECIMAL (10,2)) [Video Memory], _ResourceGuid FROM vHWDisplayController GROUP BY _ResourceGuid)c ON c._ResourceGuid = i.Guid left join Inv_Cost_Items CI on i.Guid =ci._ResourceGuid
left join (select * from Inv_HW_Physical_Memory mem where mem.[Device ID] ='Physical Memory 0') mem0 on mem0._ResourceGuid =vc.Guid left join (select * from Inv_HW_Physical_Memory mem where mem.[Device ID] ='Physical Memory 1') mem1 on mem1._ResourceGuid = vc.guid left join (select * from Inv_HW_Physical_Memory mem where mem.[Device ID] ='Physical Memory 2') mem2 on mem2._ResourceGuid = vc.guid left join (select * from Inv_HW_Physical_Memory mem where mem.[Device ID] ='Physical Memory 3') mem3 on mem3._ResourceGuid = vc.guidleft join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =1 and mon.[Device ID]='DesktopMonitor1') mon1 on mon1._ResourceGuid = ac._ResourceGuidleft join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =1 and mon.[Device ID]='DesktopMonitor2') mon2 on mon2._ResourceGuid = ac._ResourceGuid left join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =2 and mon.[Device ID]='DesktopMonitor1') mon3 on mon3._ResourceGuid = ac._ResourceGuidleft join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =1 and mon.[Device ID]='DesktopMonitor3') mon4 on mon4._ResourceGuid = ac._ResourceGuid left join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =2 and mon.[Device ID]='DesktopMonitor2') mon5 on mon5._ResourceGuid = ac._ResourceGuid left join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =1 and mon.[Device ID]='DesktopMonitor4') mon6 on mon6._ResourceGuid = ac._ResourceGuid left join (SELECT [_ResourceGuid] ,[Monitor Type] ,[Device ID] ,[Video Input Mode] ,[Serial Number] ,[Manufacturing Date] FROM [dbo].[Inv_HW_Desktop_Monitor]mon where mon.[Video Input Mode] =2 and mon.[Device ID]='DesktopMonitor3') mon7 on mon7._ResourceGuid = ac._ResourceGuid WHERE vasset.status !='retired'and ac.[Client Date]> GETDATE() -90
order by ac.[Name]asc
Original Message:
Sent: 07-20-2020 06:37 AM
From: Igor Perevozchikov
Subject: Altiris not detecting dual monitors
If you are talking about "Inventory Solution" product and 'Gather Inventory' task which collects software/hardware inventory data from computers, then I can say that it correctly detects installed monitors, even if they is a 2 monitors per 1 PC
Simple SQL query to check what data you have:
SELECT
vc.Name AS [PC Name],
vc.[User],
vc.[IP Address],
[Monitor Type],
[Device ID],
[Video Input Mode],
[Serial Number],
[Manufacturing Date],
[Feature Support],
[Model]
FROM Inv_HW_Desktop_Monitor hwdm
JOIN vComputer vc
ON Guid = hwdm._ResourceGuid
ORDER BY vc.Name
ASC
This is how it shows 2 detected/inventoried monitors on my client computer where "Gather Inventory" task is done
------------------------------
Software QA Engineer 3
Broadcom Inc.
Original Message:
Sent: 07-17-2020 10:49 AM
From: Manfred Hueskes
Subject: Altiris not detecting dual monitors
Hello,
First let me start off by saying i'm not a network IT professional and have no idea about how it works, and therefore it's doubtful anyone here can help me. What i'm looking for is a starting point to investigate. Altiris does not seem to be able to pick up the second monitor in a dual monitor setup. Any idea?