Software Deployment Question

PlistValueEquals and all other PlistValueXXXX functions not working in CIR

09/06/2016 1441 views
Hi all,

Been having a general issue with Kace when using any PlistValue functions in my Custom Inventory Rules (CIR). 
FYI, we're using Kace K1000, V6.4.522

Whatever the one I'm using, be it PlistValueEquals, or PlistValueGreaterThan, etc., it never works, and the software just keeps installing over and over, because it doesn't detect that it's installed.

Here's my latest issue: I will be using Kace to deploy the latests Security Patch released by Apple last week. Once installed, it registers the value "Security Update 2016-001" as Text in a file called InstallHistory.plist.

Here is the CIR I have configured: 
PlistValueEquals(/Library/Receipts/InstallHistory.plist,displayName,TEXT,"Security Update 2016-001")

Here is a screenshot of the Plist value, from Xcode:

Am I doing something wrong ? 

I've tried to do the same thing (albeit with a different Plist file and values and such) to configure a CIR for our Java install, and nothing happens, the software just installs over itself like if the CIR wasn't even there.

Thanks in advance for the help :)
0 Comments   [ + ] Show comments


All Answers

I don't think that the text you are looking to match needs to be in quotes, have you tried without them?
PlistValueEquals(/Library/Receipts/InstallHistory.plist,displayName,TEXT,Security Update 2016-001)

Looking at the structure of the document I'm also not sure that you can read the value because it is inside of a dictionary element.

Answered 09/07/2016 by: chucksteel
Red Belt

  • Hey! Sorry for the answering delay, been pretty busy!

    I tried without the quotation marks, and nothing...
    I've looked at my Java plist file, and both values are within a dictionary element.

    So there is no way for Kace to be able to read the content of a dictionary element ? From what I've seen, all Plist files I've had to deal with contain one or many Dictionary elements, which then in turn contain all the necessary information in either Boolean, String, Array of other types.

    I might have to reach out to Dell directly to get a definitive answer. Not that I don't trust yours, I just want a definitive answer from the actual company developing the software! Because this is a big limitation on our end.
    • Another possibility is that the rule is failing out because there are multiple displayName entries in that file. Have you tried making a CIR with PlistValueReturn to see what you get?
I have recently found a resolution to this issue. To access keys that are within a dictionary you can specify the plist file's structure using colons. In your example that would be:
PlistValueEquals(/Library/Receipts/InstallHistory.plist,:74:ItemdisplayName,TEXT,"Security Update 2016-001")

Unfortunately since this is inside of an Array and the indexes are zero based this probably wouldn't work for this case because the security update won't always be in the 74th item. I wanted to post that this is possible in some cases, however.
Answered 06/16/2017 by: chucksteel
Red Belt

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