A Technical Note

This is primarily going to be of interest to Mac admins, future Googlers and, er… Amos, I think? The rest of you can just nod and smile until I say something clever later.

So Microsoft treats Mac users as the Provisional Wing of their QA department, and as a result a lot of their stuff doesn’t quite work right with the rest of the Mac ecosystem. For example, Office 2004 turns out to be pretty good, but you can’t silently update it, or bulk-update it via ARD without user interaction.

Which is both less than ideal and occasionally (when you’ve got to, say, update everyone in the building because of a DST change…) very, very sadmaking. You really want to be able to silently and non-interactively update products like Office without user involvement and definitely without, God forbid, actually walking around to every desk in the building.

Here’s how you do that, at least as far as Office is concerned.

You need PackageMaker, which you can get as part of the XCode developer’s tools; it’s 10.4.x+ only, and part of a big download, but truly a must-have. We’re going to use a combination of that and the “find” unix utility to get this done.

So:

  1. Install Office on a clean machine, off the install CD. Use the Setup Assistant, don’t just drag-and-drop.
  2. Open a terminal window. “cd /Applications/Microsoft\ Office\ 2004″.
  3. Now mark all the installed Office files as having been created at some arbitrary point in the past, like so:

    find . -exec touch -t 0001010000 {} \;

    Which is to say, find all files, and when you find them use a program called “touch” to set their last-modified time to January 1st, 2000. Needless to say, you should be an administrator when you’re doing this.

  4. Now run the Microsoft AutoUpdate tool as many times as you want until your copy of Office is up to date; 11.3.4 is the most recent.
  5. Back in your terminal window, now:

    find . -mtime +2100 -type f -exec rm {} \;

    Careful, now. This one starts at whatever folder you’re currently in, looks at all the files in that folder and all of its subfolders and deletes the ones that are more than 2100 days, about six years, old. If you should start this process from somewhere else in the file heirarchy, it will do exactly the same thing starting there, without hesitation, mercy or remorse.

  6. Exit your terminal window, open up PackageManager, and build yourself a package out of the “/Applications/Microsoft\ Office\ 2004/” folder; the package that comes out of that process will contain all the files that were created or changed by the update process, and you can silently deploy it to your unsuspecting users at your leisure.

So, there you are – more of an overlay than an actual update package, but being a longstanding fan of things that actually work rather than doing that other thing it’s hard for me to quibble about the terminology.

Bear in mind please that this is a monolingual thing- if you try to apply a home-rolled english patch to a french version of Office, you might very well end up in the merde.

5 Comments

  1. Posted March 12, 2007 at 5:42 pm | Permalink

    But wouldn’t an update like that bring your Office installation out of sync with its corresponding registry data?

    Badum-ching.

  2. Mike Hoye
    Posted March 12, 2007 at 6:49 pm | Permalink

    Registry? On a Mac?

  3. Posted March 13, 2007 at 9:21 am | Permalink

    Yeah, but I think they call it “eggsetera” or something.

  4. Mike Hoye
    Posted March 13, 2007 at 9:36 am | Permalink

    Oh, you mean something in the Editable Text Configuration directory.

  5. Amos
    Posted March 13, 2007 at 12:11 pm | Permalink

    Wow. A post just for me! Thanks Mike. I read somewhere recently that you can have PackageMaker watch you install something and then it will package up all the stuff that was installed. I haven’t had a chance to look into this yet, but if you get to it before I do, I’d love to hear about it. It would make all sorts of un-mac-like mac software easier to maintain via Remote Desktop.