Posted on 11-06-2014 12:21 PM
I'm hoping to create a smart group of computers that need the recent Office 2011 for Mac update (v14.4.5). Requirements for the update are Office 2011 SP1 (v14.1.x) or higher. I've tried a few different approaches, including criteria of app title is "Microsoft Word.app", and app version not 14.4.5, and app version like 14%, and app version not like 14.0% but these four pieces together don't return any results. When I try a smart group on app title is "Microsoft Word.app" and app version like 14.0% I get all of the Office installs, even 14.1.x or higher. I must be doing something wrong in how I identify app versions. Thanks in advance!
Solved! Go to Solution.
Posted on 11-06-2014 12:43 PM
You might want to use something that is guaranteed to be on the systems, like Microsoft Database Daemon.app. Its a default application in any install of Office 2011, even if for some reason the installation didn't include Word, or Word was somehow deleted (although I'm guessing that would constitute a re-install anyway). But truthfully, Word should be safe to use, so its up to you.
As for criteria, try:
Application Title | Has | "Microsoft Database Daemon.app"
and
Application Version | Not Like | "14.0."
and
Application Version | Is Not | "14.4.5"
The first Application Version line should exclude any Macs running some version at 14.0.x. The second one should capture any Macs with Office from 14.1.0 through 14.4.4.
Pay close attention to when the next Office update comes out and go in and update your group. If your clients can install updates on their own the above criteria will end up pulling Macs that have manually updated to 14.4.6 or whatever the next update will be, since they are no longer running 14.4.5. The only effective "fix" is to future proof your Smart Groups by adding one more Application Version line like:
Application Version | Is Not "14.4.6"
Basically, trying to predict the future.
Posted on 11-06-2014 12:43 PM
You might want to use something that is guaranteed to be on the systems, like Microsoft Database Daemon.app. Its a default application in any install of Office 2011, even if for some reason the installation didn't include Word, or Word was somehow deleted (although I'm guessing that would constitute a re-install anyway). But truthfully, Word should be safe to use, so its up to you.
As for criteria, try:
Application Title | Has | "Microsoft Database Daemon.app"
and
Application Version | Not Like | "14.0."
and
Application Version | Is Not | "14.4.5"
The first Application Version line should exclude any Macs running some version at 14.0.x. The second one should capture any Macs with Office from 14.1.0 through 14.4.4.
Pay close attention to when the next Office update comes out and go in and update your group. If your clients can install updates on their own the above criteria will end up pulling Macs that have manually updated to 14.4.6 or whatever the next update will be, since they are no longer running 14.4.5. The only effective "fix" is to future proof your Smart Groups by adding one more Application Version line like:
Application Version | Is Not "14.4.6"
Basically, trying to predict the future.
Posted on 11-07-2014 06:43 AM
I've used this in a similar situation:
https://drive.google.com/a/mtbethelchristian.org/file/d/0B7xIPoSVlH7obHdoTzZBbG1OOFU/view
Gets me all clients that are older than 14.1.0, which I then add to the Exclusions list of my 14.4.5 update Policy.
I had initially tried combining statements, especially where the version in concerned, but always got 0 zero results like you so ended up with my solution.
Posted on 11-07-2014 03:04 PM
Here is my workflow. I hope it helps and doesn't cause a headache in the process. Feel free to ask any questions you have about it.
Buckle up!
SG = SmartGroup
EA = ExtensionAttribute
POL = Policy
Prerequisites: Your Firefox pacakge uploaded to your JSS. For me that is just dragging the app from the App folder into Composer. We use the ESR so my package is called "FirefoxESR_31.2.0.pkg". Within that package I have a pre script that just removes the current /Applications/Firefox.app Of course YMMV
#!/bin/bash
theVersion=$(defaults read /Applications/Microsoft Office 2011/Office/MicrosoftComponentPlugin.framework/Versions/14/Resources/Info.plist CFBundleShortVersionString)
echo "<result>$theVersion</result>"
As of now we have a list of machines that are downlevel from the latest version, 14.4.5.
#!/bin/sh
if [ ! -e /Library/Application Support/JAMF/Waiting Room/FirefoxESR_31.2.0.pkg ];
then
isPresent="True"
else
isPresent="False"
fi
echo "<result>$isPresent</result>"
5. Create a SG (mine is called "Cached - Firefox Update") that creates a list of machines with that package cached locally.
6. Create a POL that lights up Self Service showing that package is available for users to install when they are in the previously created SG.
The next time an Office update comes out all I do is change the hard coded value of the latest version in step 2, save it and walk away. I then created another POL that cleans out the "Waiting Room" folder of that specific update but it was a bit tricky and I forgot how I did it now that I'm home and the work side of my brain is spinning down.
Again this is MY workflow but I hope you can takes pieces of it and it helps you.
Posted on 11-07-2014 03:16 PM
I would use an extension attribute to grab the version and then you can set the result to be an integer. The result will look like 1440. This will allow you to build smart groups that have a less than or more than which will give you a range of versions. Here is what I use:
#!/bin/sh
if [ -f "/Applications/Microsoft Office 2011/Office/MicrosoftComponentPlugin.framework/Versions/14/Resources/Info.plist" ] ; then
VERSION=$( defaults read "/Applications/Microsoft Office 2011/Office/MicrosoftComponentPlugin.framework/Versions/14/Resources/Info" CFBundleShortVersionString | tr -d '.' )
else
VERSION="Not installed"
fi
echo "<result>$VERSION</result>"
Posted on 04-09-2015 07:00 AM
@iJake - when i add an elif to your EA for Office 2008, nothing shows up, it goes to 'Not Installed' ??
I modify the two lines by add 12 for the Versions