Smart Group of Office 2011 for Mac 14.1.x through 14.4.4

BlueJamf
New Contributor

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!

1 ACCEPTED SOLUTION

mm2270
Legendary Contributor III

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.

View solution in original post

5 REPLIES 5

mm2270
Legendary Contributor III

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.

jduvalmtb
Contributor

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.

Snickasaurus
Contributor

@BlueJamf][/url][/url

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

  1. Create an EA that reports back the "CFBundleShortVersionString" of: /Applications/Microsoft Office 2011/Office/MicrosoftComponentPlugin.framework/Versions/14/Resources/Info.plist or /Applications/Microsoft Office 2011/Microsoft Word.app/Contents/Info.plist Whatever makes you feel most comfy.
    #!/bin/bash

theVersion=$(defaults read /Applications/Microsoft Office 2011/Office/MicrosoftComponentPlugin.framework/Versions/14/Resources/Info.plist CFBundleShortVersionString)

echo "<result>$theVersion</result>"

  1. Create a SG that adds machines that "are not" whatever the current version is that you hard code. Today that would be 14.4.5.

As of now we have a list of machines that are downlevel from the latest version, 14.4.5.

  1. Create a POL that that caches your Firefox package to any machine that is in that SG from step 2.
  2. Create an EA that checks to see if that package has been cached and reports back "True" or "False".
    #!/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.

iJake
Valued Contributor

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>"

tcandela
Valued Contributor II

@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