Posted on 05-31-2017 05:00 AM
Hello,
I'm trying to find the best approach for determining if all parts of Adobe CC are installed or not. I want to determine, either via Smart Group, Advanced search or maybe an EA....... I want to see what computers don't have all the pieces of our Adobe CC suite installed, but I want to be able to see what computers are missing what application(s).
Not sure of the best way to handle this. I was thinking I'd have to do separate searches for each application, but there has to be a better way, and the complicated part seems to reporting what computers are missing what.
Thank you
David
Posted on 05-31-2017 06:52 AM
Licensed Software supports supercedence, so it should be able to accomplish what you want. We have a Licensed Software record for Acrobat only, Design Standard, Design & Web Premium, and Complete (which are the cost levels in our EA), which makes true-up time much simpler.
Edit:
Never mind, I re-read your post again and that probably doesn't do what you want. If you're looking to see which specific computers are missing which individual applications, separate smart groups are probably your best bet.
Posted on 05-31-2017 07:25 AM
Thank you for the response..... the individual smart groups is what I was thinking also, but ugh! I was hoping for some sort of magic bullet! haha
Posted on 05-31-2017 09:18 AM
Not sure if this is the "best" way, but you could do something like this with an extension attribute to get the number of instances where "Adobe" is found in /Applications, and then a smart group for computers that match your desired number of Adobe instances.
ls /Applications | grep Adobe* | wc -l
Posted on 05-31-2017 10:15 AM
I'd be cautious about making a whole bunch of Smart Groups for this. You may have better results with an Extension Attribute.
Posted on 05-31-2017 01:49 PM
@fedagain What kind of licensing do you have? If it's serial licensing, there is a license SWID file that Jamf Pro can read from to determine the licensing on the computer for the application that supports it (Adobe supports/uses it). If it's named/device licensing, I would not involve Jamf Pro at all and simply go through the Adobe Portal for Teams or Enterprise to manage your licenses by user/device.
Last bit of advice, do not use one big smart group to look for every Adobe application title and specific version. You will bring your JSS to a crawl. However, individual smart groups for each app shouldn't be a problem.
Posted on 05-31-2017 02:16 PM
I agree with @kendalljjohnson and @mm2270 looks like a job for an EA with some logic built into.
Something like a Count of Adobe applications and then referencing a couple of known ones or some other know indicator to determine the suite installed.
If you wanted to get really complicated you can pass quite big strings to EA's I have passed lists of missing things before. There is probably a limit but I have 5 or 6 values items in one EA before.
Posted on 05-31-2017 02:34 PM
As an example of an EA to do this, here is one I put together for Office 2016 apps. If any of the standard apps were missing, they would end up showing up in the final result, The basic result can be one of All
if all apps are present, Some
if some are installed, and some aren't and None
if none of them were installed. In the case of a "Some" result, it also shows which apps weren't installed.
#!/bin/bash
AppList=(
"Microsoft Outlook.app"
"Microsoft Word.app"
"Microsoft Excel.app"
"Microsoft PowerPoint.app"
"Microsoft OneNote.app"
)
while read APP; do
if [[ ! -d "/Applications/$APP" ]]; then
NotPresent+=("$APP")
fi
done < <(printf '%s
' "${AppList[@]}")
if [[ ! -z "${NotPresent[@]}" ]]; then
if [[ "${#NotPresent[@]}" == "${#AppList[@]}" ]]; then
Result="None"
else
Result="Some
Missing:
$(printf '%s
' "${NotPresent[@]}")"
fi
else
Result="All"
fi
echo "<result>$Result</result>"
In the above, if I were to add in a bogus application to the initial array to check, like "Microsoft Goober.app" the result for the EA would look like:
Some
Missing:
Microsoft Goober.app
Otherwise it would send back "All" or "None"
You should be able to modify this to work with any suite, I would think, and then use the results from the EA to gather systems that show up as either Some or None, depending on what it is you'd like to track.
This all being said, this is certainly not the only approach, and you've been given a few other options by people here. Still, I hope that helps, if this is the direction you choose to go in.
Posted on 06-01-2017 05:14 AM
Hey, thank you all for the responses. There are some really great ideas here. About a year ago I did a smart group that was ONE group listing all the adobe apps, YES, it does bring the jss to a crawl!!!
Will definitely experiment with the EA, and thank you very much @mm2270 for the example code to start with!!
Posted on 06-01-2017 07:18 AM
I'm stuck on something here using your script in the EA.
1.) Any special settings for the EA itself? I have it set as DATA TYPE = STRING, INVENTORY DISPLAY = GENERAL OR EA, INPUT TYPE = SCRIPT.
2.) I think my issue is with using it in a smart group and/or advanced computer search..... my issue I think is how to use it as criteria and what to use as a value. Maybe I'm looking at this entirely wrong.
Any help would be appreciated.
Thank you!!
Posted on 06-01-2017 07:45 AM
@fedagain I think your point 1 looks good to me. That's the same way I would set it up. It's possible the way you're expecting to get the results is the issue. You're going to need to use a Like operator for the Smart Group criteria. For example, something like
Adobe CC Installed | like | Some
or
Adobe CC Installed | like | None
The above would or should gather Macs that either don't have the entire Adobe CC suite installed (assuming you made the correct edits to the EA script) or none of them installed. Of course, you can have it look for just one of those results or even ones that report "All" for any that have the whole suite installed.
I would, after setting up the EA, take a single machine with Adobe CC installed, or some of them installed, etc and do a manual recon on the Mac sudo jamf recon
Let that complete and then look at the Mac record to see what the EA shows. If the results look good, then it will be a matter of giving your Macs time to check in with inventory collections and gather that data. That last point is an important one. EAs only collect information on inventory collections (recons) You won't see any results on machines until they do that.
If you're still having trouble after the above steps, maybe post the edited script you're using here so we can look at it and see if there's an issue with it.
Posted on 06-02-2017 06:31 AM
That explained it to me.... Thank you!
I was thinking incorrectly..... was thinking that the "Smart Group" was going to be an automatic update.... I see now that the manual recon or inventory check interval needs to run.
Anyway, I have your script working for me checking Office... I will now clone and modify to check the Adobe applications.
Thanks again!
Posted on 06-19-2018 02:35 PM
FWIW we move any EA that takes longer than 0.1 seconds to complete over to a daily policy script, and have an EA to scoop up whatever file the script outputs.