Hi,

I need to make a custom inventory rule for getting all PCs with an old Adobe Reader product version (nearly 700 PCs.. to check). The version reference that we are using now is Adobe Reader X (10.1.4)

 

I create a custom inventory rule (because a smart computer label with the search criterias "<" or ">" are not working well..), and when i m using "ProductVersionGreaterThan" the result give me nothing. I'm sure that i have more than 1 PC with the version 10.1.4 or greater.

Here my custom rule (For W7):

ProductVersionGreaterThan(C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe,10.1.3)

I put the number 10.1.3  to be sure to include the 10.1.4 Adobe Reader's versions.

Did I make a mistake on my rule ? It's also not working with others applications..

Thanks you for your answers

Best regards

KACE Agent version: K1000 - Version 5.3.53053 (Last version available)

OS: Windows 7 SP1 and Windows XP SP3

Answer Summary:
Cancel
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Answers

2

Software version numbers are a huge pain the butt, since they aren't actually numbers so the GreaterThan and LessThan rules don't work well. There are some hacks to get it working and most of them involve using smart labels. There was a tutorial on the old AppDeploy message boards with a good writeup on this. Perhaps someone can find it here.

Either way, using a smart label will probably work better for this than a custom inventory rule. 

Answered 10/11/2012 by: chucksteel
Red Belt

Please log in to comment
2

I agree with chucksteel that a smart label is the way to go.  I wrote an article on the setup, in case you're not familiar with them:

K1000 Labels - Effective Organization & Process Flow Using Manual, Smart & LDAP Labels and Label Groups

http://www.itninja.com/blog/view/k1000-labels-effective-organization-process-flow-using-manual-smart-ldap-labels-and-label-groups

Here's the actual smart label SQL code you'll want to use to list all machines running older versions of Adobe Reader (taken from the article above):

*label name*

old-ar(pre-10.1.4)

*SQL query*

select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
LEFT JOIN KBSYS.KUID_ORGANIZATION
ON KUID_ORGANIZATION.KUID=MACHINE.KUID
LEFT JOIN KBSYS.SMMP_CONNECTION
ON SMMP_CONNECTION.KUID = MACHINE.KUID AND KUID_ORGANIZATION.ORGANIZATION_ID = 1
where ((  (1  in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT
where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID
and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID
and SOFTWARE.DISPLAY_NAME like 'Adobe Reader%'
and SOFTWARE.DISPLAY_VERSION RLIKE '(^[0-9][[.period.]])|(^10[[.period.]]0[[.period.]])|(^10[[.period.]]1[[.period.]][0-3]$)' )) ))
_________

Software Titles           where... SOFTWARE.DISPLAY_NAME like 'Adobe Reader%'
Software Version Number   and... SOFTWARE.DISPLAY_VERSION RLIKE (REGEX statement)

This label lists all machines with versions of Adobe Reader prior to 10.1.4 installed.

If you want a smart label to list all machines with the current version of Adobe Reader (10.1.4), use this:

*label name*

current-ar(10.1.4)

*SQL query*

select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
LEFT JOIN KBSYS.KUID_ORGANIZATION
ON KUID_ORGANIZATION.KUID=MACHINE.KUID
LEFT JOIN KBSYS.SMMP_CONNECTION
ON SMMP_CONNECTION.KUID = MACHINE.KUID AND KUID_ORGANIZATION.ORGANIZATION_ID = 1
where ((  (1  in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT
where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID
and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID
and SOFTWARE.DISPLAY_NAME like 'Adobe Reader%'
and SOFTWARE.DISPLAY_VERSION RLIKE '(^10[[.period.]]1[[.period.]]4$)')) ))
_________

Software Titles           where... SOFTWARE.DISPLAY_NAME like 'Adobe Reader%'
Software Version Number   and... SOFTWARE.DISPLAY_VERSION RLIKE (REGEX statement)

This label lists all machines with Adobe Reader 10.1.4 installed.

Also, if you need help writing your own REGEX statements to target application versions (specific or ranged), see this:

Using REGEX in Smart Labels to Find Lower Versioned Software (w/Java Example)

http://www.itninja.com/blog/view/using-regex-in-smart-labels-to-find-lower-versioned-software-w-java-example

Hope that helps!

John

Answered 10/11/2012 by: jverbosk
Red Belt

Please log in to comment
1

Thanks you for your answers , But i finally find a solution to work with the custom inventory rule. It seems that KACE is interpretting the number of the version in a TEXT format and not a NUMBER format. It probably changed the method of the interpretation of the "ProductVersionGreaterThan".

Greetings !

Answered 10/22/2012 by: CIAD
White Belt

  • That makes sense because 10.1.3 isn't a discreet number. We see it as one but a computer won't because a number can't contain more than one period (and integers can't contain any).
  • Here some information about "ProductVersionGreaterThan" and "ProductVersionLessThan" :

    http://www.kace.com/en/support/resources/kb/article/what-is-the-syntax-for-custom-inventory-rules
Please log in to comment
Answer this question or Comment on this question for clarity

Share