/build/static/layout/Breadcrumb_cap_w.png

List software not in a software list for a group of machines

This SQL report lists software not in a software list for machines that belongs to a label.

This SQL report can be used to find all computers belongs to a label that have software not in the approved software list.

To use this report, replace label_name with the group of machines label name, software_1, software_2, software_3, software_4 with list of approved software titles as displayed in Inventory | Software. E.g., 'Adobe Reader 9.1'.

% can be used as wild card. E.g., 'Adobe Reader%' includes all versions of Adobe Reader.

Duplicate the line and SOFTWARE.DISPLAY_NAME not like 'software_n' for additional software title.


SELECT
MACHINE.NAME AS SYSTEM_NAME, SYSTEM_DESCRIPTION, IP,
GROUP_CONCAT(DISTINCT SOFTWARE.DISPLAY_NAME SEPARATOR '\n') AS SOFTWARE_TITLE_NAME
from MACHINE LEFT JOIN MACHINE_SOFTWARE_JT ON (MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID)
LEFT JOIN SOFTWARE ON (SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID)
WHERE
( (1 in (select 1 from LABEL, MACHINE_LABEL_JT
where MACHINE.ID = MACHINE_LABEL_JT.MACHINE_ID AND MACHINE_LABEL_JT.LABEL_ID = LABEL.ID AND LABEL.TYPE <> 'hidden' and LABEL.NAME like 'label_name')) )
AND
(SOFTWARE.DISPLAY_NAME not like 'software_1'
and SOFTWARE.DISPLAY_NAME not like 'software_2'
and SOFTWARE.DISPLAY_NAME not like 'software_3'
and SOFTWARE.DISPLAY_NAME not like 'software_4'
and SOFTWARE.DISPLAY_NAME not like '%KB%')
GROUP BY MACHINE.ID
order by MACHINE.NAME,SOFTWARE.DISPLAY_NAME

0 Comments   [ + ] Show comments

Answers (1)

Posted by: airwolf 14 years ago
Red Belt
0
Good work! You can shorten the where clause up a bit using an array, and I prefer to see the software version:

SELECT
MACHINE.NAME AS 'System Name', SYSTEM_DESCRIPTION AS 'Description', IP AS 'IP Address',
GROUP_CONCAT(DISTINCT SOFTWARE.DISPLAY_NAME SEPARATOR '\n') AS 'Software Title Name', SOFTWARE.DISPLAY_VERSION AS 'Software Version'
from MACHINE LEFT JOIN MACHINE_SOFTWARE_JT ON (MACHINE_SOFTWARE_JT.MACHINE_ID = MACHINE.ID)
LEFT JOIN SOFTWARE ON (SOFTWARE.ID = MACHINE_SOFTWARE_JT.SOFTWARE_ID)
WHERE
( (1 in (select 1 from LABEL, MACHINE_LABEL_JT
where MACHINE.ID = MACHINE_LABEL_JT.MACHINE_ID AND MACHINE_LABEL_JT.LABEL_ID = LABEL.ID AND LABEL.TYPE <> 'hidden' and LABEL.NAME like 'label_name')) )
AND
SOFTWARE.DISPLAY_NAME not in ('software_1', 'software_2', 'software_3', 'software_4', '%KB%')
GROUP BY MACHINE.ID
order by MACHINE.NAME,SOFTWARE.DISPLAY_NAME
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

View more:

Share

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ