/build/static/layout/Breadcrumb_cap_w.png

Creating a K1000 report that will list all machines that are part of a specific label that have patches listed as critical missing

I am trying to create a report that will list all machines that are part of a specific label that have patches listed as critical missing. The report is running correctly, with the exception that it seems to only gather that data from the first label and then quit. I would like it to gather the data from all of the listed labels. I am fairly new to SQL and would appreciate any help on this.

Here is what I have so far:

 

Select M.NAME as MACHINE_NAME, M.USER, M.USER_FULLNAME, GROUP_CONCAT(PP.TITLE) AS PATCH_NAME,

SUM(MS.STATUS='NOTPATCHED') AS NOT_PATCHED

FROM ORG1.PATCHLINK_MACHINE_STATUS MS JOIN ORG1.MACHINE M ON M.ID = MS.MACHINE_ID 

JOIN KBSYS.PATCHLINK_PATCH PP ON PP.UID = MS.PATCHUID 

JOIN PATCHLINK_PATCH_STATUS PPS ON PPS.PATCHUID = PP.UID 

JOIN ORG1.MACHINE_LABEL_JT ML ON (M.ID = ML.MACHINE_ID) 

JOIN LABEL L ON (ML.LABEL_ID = L.ID) 

where PP.IMPACTID = ('Critical') AND MS.STATUS='NOTPATCHED' AND PPS.STATUS = 0 /* 0=active patches */ 

and (L.NAME LIKE ('Win 7 - CIO Org') or ('Win XP - CIO Org') OR ('Win Workstations (North America)')) 

group by MACHINE_NAME

order by MACHINE_NAME, PP.TITLE


0 Comments   [ + ] Show comments

Answers (1)

Posted by: jverbosk 11 years ago
Red Belt
0

Try changing this line:

and (L.NAME LIKE ('Win 7 - CIO Org') or ('Win XP - CIO Org') OR ('Win Workstations (North America)'))

To this:

and (L.NAME RLIKE 'Win 7 - CIO Org|Win XP - CIO Org|Win Workstations (North America)'))

Since REGEX (RLIKE) will match unique strings, this may also work (depending on what other labels you have):

and L.NAME RLIKE 'CIO|North A'))

John


Comments:
  • Thank you for the suggestion. Here is what I found when trying your method.

    The above line works for the Win 7 - CIO Org|Win XP - CIO Org labels and returns the correct combined value. When I add |Win Workstations (North America) to the query it returns the same value as the previous query not containing |Win Workstations (North America).

    Additionally, if I run the following query it returns nothing.

    and (L.NAME RLIKE 'Win Workstations (North America)')

    However, if I run it as follows it returns the correct amount of rows.

    and L.NAME LIKE 'Win Workstations (North America)'

    I am not sure if it matters but the labels are the following types:

    Win Workstations (North America) = LDAP label
    Win 7 - CIO Org = regular (manual) label
    Win XP - CIO Org = regular (manual) label - jparkins 11 years ago
  • My guess would be that it has something to do with it being an LDPA label and they way that they are applied only once checking in. Interesting result that will need some testing. - jdornan 11 years ago
  • I've run into instances of REGEX (RLIKE) not handling long strings well as well as certain characters (space, parentheses) causing unexpected behavior. If it works when you use the "LIKE" version, I'd substitute these two lines for the the one I suggested and see where this gets you:

    and (L.NAME RLIKE 'Win 7 - CIO Org|Win XP - CIO Org'
    or L.NAME = 'Win Workstations (North America)'))

    John - jverbosk 11 years ago

Don't be a Stranger!

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

Sign up! or login

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