Updating Microsoft Office 2011 and Microsoft Lync

plnick240
New Contributor

What is the best way to update Microsoft Office 2011 and Microsoft Lync?

1 ACCEPTED SOLUTION

mojo21221
Contributor II

I usually download latest update package from Microsoft. Latest is 14.3.8. Open the DMG then drag the pkg directly into Casper Admin. Next create a policy to cache the pkg at next checkin ,with a scope of a smart group that checks against the version of the Microsoft Upload Center.app. Then create another policy install the cached pkg at startup. Hope that helped.

View solution in original post

16 REPLIES 16

mojo21221
Contributor II

I usually download latest update package from Microsoft. Latest is 14.3.8. Open the DMG then drag the pkg directly into Casper Admin. Next create a policy to cache the pkg at next checkin ,with a scope of a smart group that checks against the version of the Microsoft Upload Center.app. Then create another policy install the cached pkg at startup. Hope that helped.

TimT
Contributor

I use Rich Trouton's suggestion to remove the quit function in the installer which then allows to silently install the update over the network without requiring the users to quit before installing. In fact the only way they know it has been updated is using notification via JamfHelper letting them know that it has been updated and they will need to quit and restart when they are ready to do so.

http://derflounder.wordpress.com/2012/09/26/removing-the-office-2011-installers-application-quit-function/

jeffrey_fesunof
New Contributor

I set up a JSS Smart Group that checks if the version of Lync or Office 2011 is below a set threshold version. A policy is based on the Smart Group that shows in Self Service an "update needed" package. This is in the first category the users will see when they launch Self Service. The package runs a script to launch the Microsoft AutoUpdater wizard. This allows the users to pull the package update at a time convenient for them. It also eliminates the need to package updates from Microsoft. We test new versions of Office and Lync as they become available and then raise the version threshold in the Smart Group to make the update available to our users.

dpertschi
Valued Contributor

@timcarnegie : So you've found that removing the all_quit script to be completely safe and stable for the users that don't frequently quit applications or restart?

I'm currently running those updates at login and nagging users to reboot. However, we're migrating to Outlook from Notes and I now need to have faster update compliance. So, I worry about the stability of Outlook if updates are applied while it's running.

plnick240
New Contributor

@ jeffrey.fesunoff - I like your idea, but most of my end-users don't even use the Self Service app. I've tried telling them to use it as much as possible but they all forget about it.

PeterClarke
Contributor II

Yes -- I have the same problem..

Well - you could deploy a package to make Casper Self Service a launch item !
-- That way they would have to quit it..
-- Could be annoying though.. !!

Another 'better solution' would be to use JAMFHelper to display a notification..
I am thinking about doing that one myself..
-- That ought to increase the response rate..

Then if all else fails the nuke option of the first suggestion - or even a push deploy..
You could also use a policy to cache the item, and make it available off-line..

dpertschi
Valued Contributor

bump...

Can anyone comment on the stability of the existing version open Office apps, especially Outlook, when deploying Office updates that have been modified to remove the all_quit scripting?

I'd love to get faster compliance on patching, but worry about the large number of users that infrequently quit/restart. We're just migrating to Outlook now, and I'm worried about corrupting mail db's.

SeanA
Contributor III

Another option would be to take a look at mm2270's quite excellent Update Core Apps script (https://github.com/mm2270/CasperSuiteScripts/blob/master/Update_Core_Apps.sh). Make sure you read the Read Me file for proper context.

mm2270
Legendary Contributor III

@SeanA - thanks for the mention!
It hadn't even occurred to me until I saw the post on this thread today to look at including Microsoft Lync to my Update_Core_Apps script. So I took a quick look at that.
I now have a beta branch on my github page and have a beta 1 version of the script that includes the ability to update Microsoft Lync for Mac to the list.
Because of how MS is versioning Lync, I had to create some new functions to handle the version checking. The method I've been using for all the other apps doesn't work properly with it. So if you look for an update for Lync with the beta version of the script it will call a separate version checking function to make sure an update is needed.

In my very quick testing, Lync updates can install right on top of the existing version even while its running and doesn't quit anything when done from the command line. It doesn't corrupt or damage the app either. Just quit and relaunch after it installs and its running the newest version.
Obviously, I wouldn't just take my word for it, and would test this out thoroughly. That's why its labeled as beta. I'd need to get feedback that all is working as expected with nothing getting messed up before I'd consider putting the code into the main script.

You can find the beta version of the script here: https://github.com/mm2270/CasperSuiteScripts/tree/Beta
or here to get the script directly: https://github.com/mm2270/CasperSuiteScripts/blob/Beta/Update_Core_Apps_b1.sh

rmorgan314
New Contributor

I'm not sure that I have the process down correctly.......

1) create a policy that drops the Microsoft Update (pkg created by Composer) to a location on a Mac (the Waiting Room in this case). I see the package get downloaded to my machine.... 2) create a policy that runs the Update_Core_Apps.sh script to install the cached policy. On this policy, under "Files and Processes" I run the following command under "Execute Command" sudo jamf runScript -script Update_Core_Apps.sh -path //Library/Application Support/JAMF/Waiting Room/ . It never works, but always creates the error message below.

Can anyone give me some pointers? Obviously and painfully missing something because I keep getting the following error referring to "Parameter 4" which the script indicates should be.... " Office 2011 "MSO", "Office", "Office 2011", "Office2011","MS Office", "MSOffice" " for an MS Office Update execution

Begin Error Message *
Executing Policy Experian MS Office Update Install...
Running script Core App Update...
Script exit code: 1
Script result: [Mode]: Silent
The application, suite or plug-in specified ( Office 2011 "MSO", "Office", "Office 2011", "Office2011","MS Office", "MSOffice" ) has no reference in this script.
Please check your entry and try again.
Running command sudo jamf runScript -script Update_Core_Apps.sh -path //Library/Application Support/JAMF/Waiting Room/...
Result of command:

There was an error.

The script could not be found.

END Error Message**

rmorgan314
New Contributor

The README.md for the Update_Core_Apps.sh script says .....

  • Has built in version checking against installed applications (if its installed), by comparing it to the latest release from the vendor. The version checking can handle odd version naming conventions, so that it ensures it is only "upgrading" a client, not downgrading it.

But how do you update the script if the vendor has a new version number?

The Update_Core_Apps.sh script makes a call out to Microsoft to download Lync - at

LyncUpdCheckURL="http://www.microsoft.com/mac/autoupdate/0409UCCP14.xml"

And it does not work..... so if you take a look at the 0409UCCP14.xml file you can see that its calling out to Microsoft with the following...

http://download.microsoft.com/download/5/0/0/500C7E1F-3235-47D4-BC11-95A71A1BA3ED/lync_14.0.10_141024.dmg

Problem is ....... lync_14.0.10_141024.dmg is not the current version and can not be found at this location.

So....... if you change URL tohttp://download.microsoft.com/download/5/0/0/500C7E1F-3235-47D4-BC11-95A71A1BA3ED/lync_14.0.11_150304.1.dmg you find the package and presumably the script will work for Lync.

So the big question is...... how to I update the 0409UCCP14.xml file to represent the latest MS Lync version lync_14.0.11_150304.1.dmg??????

I'm sure this is an easy fix...... but I'm not sure where to update the xml file

Any Ideas?

mm2270
Legendary Contributor III

Hi @rmorgan314 Sorry. I hadn't even seen your posts until just now.

So to try to backtrack a little and address your two posts above, in your first one, you only need to include one of the strings mentioned in the read me, not all of them. So, in other words, use "Office 2011" OR "MSO" Or... etc etc. I designed it to be flexible so you could drop what feels most comfortable to you from the list into the script Parameter field. So, don't lump all those strings into Parameter 4 or it will not know what you're trying to do.

Second, in regards to MS Lync, I'm well aware that their updater xml is out of date and the DMG it points back to is broken. I'm not sure why this is. I've been meaning to reach out to our MS rep on this as it seems odd that the update feed is still available for Lync to check against, yet doesn't point to a valid download. It seems like someone at Microsoft goofed, pulled the 14.0.10 download when 14.0.11 was released and just forgot to update their xml. I'm going to get in touch with them about it.

For now, there isn't really a good way I've found to locate the 14.0.11 installer from a scripted workflow. I could hardcode it to their support download page, but then when they update it again it would be broken once more. The idea behind my script is to use URLs that hopefully will always point back to the latest release, but sadly, this all depends on developers getting their act together and keeping them up to date. This Lync issue is one case in point.

BTW, I have a reworked version of this script in beta testing right now with some folks. Some new features will be introduced with it once I get enough positive feedback that its working well.

mm2270
Legendary Contributor III

@rmorgan314 So I just went back and re-read your original post. There are a number of things that are set up wrong that I hadn't noticed before.
I don't know if you were looking to use my script or not, but if you were, it does not rely on having a package in your CasperShare, nor a cached installer on the Mac at all. My script is designed to pull down the latest version of Office 2011 directly from a URL, not be directed to a previously cached installer.

To set it up correctly-
1. Create a new script in your JSS, call it whatever you want, or use the name I gave it - it doesn't matter really. 2. Copy/paste the script content into the script content window after you've created it.
3. Under the Options tab, add the following to the Parameter 4 description field: "App or Plug-in name"
4. Under Parameter 5's description field type in: "Self Service?"
5. Click Save to save the script

Now, back in your policy, add the script you just created to it, add your scope, trigger, frequency, etc, as you would normally. When you add in the script, be sure to type in something like "Office" for the "App or Plug-in name" field. Leave the Self Service one (parameter 5) blank if you plan on doing a silent push.

When the policy runs, the script downloads, checks the installed version of Office against Microsoft's Auto Update url, determines if an update is needed, and if so, downloads and installs it, using the noQuit.xml as a ChoicesXML option along with command line installer, so any open apps don't get quit.

The version of the script up on my github page right now will use cocoaDialog or jamfHelper to notify the logged in user if anything was open while being updated. The new script in testing will also be able to use Management Action.app so it can send up a Notification Center message with the same info.

Treger
Contributor

Hi guys,

Don't know if anyone is still watching this thread but thought I would have a go... would anyone know why I am getting this error? I managed to get it to run once successfully but now it is not working at all with the below error ((I am just using Firefox as my test app) OSX v 10.10.5 jamf ver 9.81):

[STEP 2 of 3]
Running script Update Apps.sh...
Script exit code: 1
Script result: [Mode]: Silent

[Stage 1]: Determining current version of Firefox...
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.co.uk/?gfe_rd=cr&ei=NMWTVoQG6NTyB-6dsdgJ
Content-Length: 259
Date: Mon, 11 Jan 2016 15:07:32 GMT
Server: GFE/2.0

We have internet access, but couldn't pull version information for Firefox.

I have tried flushing the policy logs and errors but that didn't help either...

mm2270
Legendary Contributor III

@Treger I probably need to pull the script I have posted up on github for the moment, because I haven't updated it in a while now, so lots of things have changed and some of it likely isn't working anymore. Nature of the beast.
I have a different script that's using some of the same code that's been in development for a while now, but more flexible, that is being updated more regularly. I don't have this script on my github page, so you won't find it there. If its something you're interested in using or trying in your environment, ping me offline at mm2270 [at] icloud [dot] com. I'll send the latest script to you directly.
Just a quick note on it, I just updated it to now use the new unique distribution download URLs for Flash Player that Adobe will start requiring in a couple of weeks, according to this thread: https://jamfnation.jamfsoftware.com/discussion.html?id=18230. If you plan on using it to update Flash Player, and you haven't already signed up to get a unique distribution URL, you'll need to do that and plug it into the appropriate place in the script before you can begin using it to update that.

Treger
Contributor

@mm2270 Thanks very much!, I will ping you back shortly.