Desktop administrators often forget that, like Windows OSs, Microsoft Office requires occasional updates to maintain a functional and, more important, secure platform for user productivity. Two basic methods exist for keeping clients updated. You can apply updates directly to client installations, or you can patch an administrative installation point, then recache and reinstall Office on client computers. You can read Microsoft's perspective on the pros and cons for each method at http://www.microsoft.com/office/ork/updates/patch_oxpo2k.htm.
In this article, I discuss how to create and maintain an administrative installation point for distributing updates. However, even if your long-term maintenance strategy doesn't include ongoing updates to an administrative installation point, you can use these techniques when creating your baseline Office installation.
Creating an Administrative Installation Point
An administrative installation point is an image of the Office installation files that's located on a network share. Because you can't write to the Office installation CD-ROM, an administrative installation point is required if you want an
up-to-date installation source for Office. Additionally, you can create transforms (files that modify the behavior of Windows Installerbased installations) for customizing Office installations and create batch files for automated installations within this share. If you don't already have an administrative installation point, follow these steps to create one.
1.Create a share on a network server with sufficient disk space to host the full Office source code (approximately 600MB to 700MB for Office XP and Office 2000).
2.Create one or more appropriately named subfolders (e.g., OfficeXPStd or Office2KPro) to hold the Office installation files.
3.Place the Office installation CD-ROM into a desktop system that can write to the network share you just created.
4.Open a command prompt and edit it to the root directory of the Office installation CD-ROM.
on the command line and press Enter.
6.Fill in the required fields with your organization name, the installation location (the subfolder in the share you just created), and your product license key.
After you accept the license agreement and click Install, the installation extracts the Office files to the network share. If you want to create an administrative installation source for an add-on component such as Office Web Components, you can use the following method to extract the files:
1.Open a command prompt and edit it to the root directory of the Office installation CD-ROM.
msiexec.exe a filename.msi SHORTFILENAMES=TRUE
on the command line and press Enter.
3. When you're prompted, enter the path to the newly created administrative installation point.
Finding and Downloading Updates
After you create an administrative installation point for your Office product or products, you need to download and apply the latest service packs and patches so that future installations will reflect the current patch level. Microsoft issues Office updates in two formats: administrative (full-file) updates and client (binary) updates. When patching an administrative installation point, you must use administrative updates, which perform full-file replacement for all changes contained in an update.
Your first and best resource for finding and downloading updates is the Office Admin Update Center (http://www.microsoft.com/office/ork/updates/default.htm). The site lists all updates to Office products, including Office 2003, Office XP, and Office 97Office 2000. The update lists are organized using indents and descriptions to help you determine which files you need to download. For example, the administrative updates for Office 2000—Office 2000 Service Release 1 (SR1), Office 2000 Service Pack 3 (SP3), and the fixes released after Office 2000 SP3—are listed with no indents. All other fixes that are rolled into a later service pack are indented and listed under a heading that denotes which service pack Microsoft rolled them into.
Obviously, older Office versions have more patches and service packs available. Organizing and applying all the updates can present a challenge if you're starting from a fresh, unpatched version of Office. In some cases, the order in which you apply patches is crucial. For instance, when patching Office 2000, you must apply SR1 or SR1a before you apply SP3 and apply SP3 before you apply the post-SP3 patches. Here's what to do to simplify your task when you have a bevy of updates to apply.
I've developed a strategy for maintaining my sanity when it's time to apply numerous patches to Office. Because the organization I work for supports separate Office versions, one misplaced or misnamed update can throw me into a state of confusion and disarray. Therefore, before I download any updates, I create a base directory for Office updates and a subdirectory for each supported Office platform. Figure 1 shows an example of the directory structure I created to support Office XP and Office 2000.
After you determine which updates you need to download, start at the bottom of the list as it appears on the Web site and download the updates using the original filename, but append a character to the beginning of the filename to specify the order in which you need to install the update. (This method works well to maintain order whether or not you use the mass update batch file I discuss later.) After you save the updates to your computer, use WinZip Computing's WinZip or a similar archive-extracting tool to extract the contents of the self-extracting archives to a folder named with the name of the archive. For example, because I need to apply SR1 before any other Office 2000 updates, I add A- to the original filename when I save the download. When I extract the SR1 update, now named A-Data1.exe, I instruct WinZip to create a folder based on that filename. So, the ultimate destination for the SR1 update, Data1.msp, is Updates\O2Kupdates\A-Data1, as Figure 1 shows. If you use this method to download and extract all needed updates, you can use the dir command to create the rudimentary structure of a batch file you'll use to apply your series of patches. To run the command, open a command prompt and edit it to the Office platform directory under the base updates directory you created (i.e., Updates\O2Kupdates). Type
dir *.msp /b /s > patch.bat
on the command line and press Enter.
This command creates a file named patch.bat and places in that file the filenames and full path of the updates you downloaded. This step accomplishes two goals: You avoid having to type the long path and filename for each update, and you establish the order in which the batch file will process the updates.
Performing Mass Updates
Some patches and updates can take quite a while to process. Keeping track of the patches you've applied can be difficult if you embark on other tasks while waiting for a patch to complete. This tracking difficulty combined with the complicated syntax you use with msiexec.exe to apply patches makes a strong argument for leveraging a batch file to organize and execute your updates. Listing 1 shows a sample client update batch file, and the following guidelines will help you modify your own batch files.
I use the following syntax to update an administrative installation point:
Msiexec /a msifile /p updatefile
SHORTFILENAMES=TRUE /qb /L logfile
The msifile parameter specifies the name of the .msi file you're updating. This name will vary according to which distribution of Office you're updating. (CD-ROMs that contain the source for both standard and professional versions of Office will have a separate .msi file for each version.) This argument remains the same for each line of the batch file, so you can copy it to make life easy. If you apply an update to an add-on such as Office Web Components, which uses a separate msi file, you need to substitute the correct name of the .msi file you'll be updating.
You populated the updatefile parameter earlier when you used the dir command with redirection to the batch file. You simply need to precede the existing entries with a /p.
The other arguments are operational arguments. The SHORTFILENAMES=TRUE argument is required when you run Windows Installer from the command line. The /qb argument instructs msiexec to display only informational dialogs to streamline patching, and the /L or /L*v argument instructs msiexec to log the update operations. The logfile parameter is the name of the logfile you want to create. The *v option creates a verbose log, which probably has more data than you want to see unless you're troubleshooting a problem. To simplify the batch file creation process, you can copy these three arguments to the end of every line in the batch file, but you'll want to modify the logfile name for each update operation because each successive operation overwrites the log file. Initially, you might want to insert pause statements between each msiexec command to more closely monitor which operations are being performed. After you modify your batch file to look similar to the one Listing 1 shows, you can run it
to apply all the specified patches in sequence.
If you attempt to update a component that isn't contained in your administrative installation point (e.g., Office Web Components or Access Runtime) you'll see the message "The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch." If you don't use this component, you didn't need to download that update and can ignore the message. If the component should be part of your administrative installation point, the component might use a separate msi database. In that case, you need to specify the correct name for the .msi file to patch and rerun that line of the batch file.
Reaping the Benefits
Creating and maintaining an administrative installation point might seem like a lot of work, but it's a necessary chore if you intend to keep the clients you support up to date. I hope some of the techniques and procedures I discussed in this article will help you complete the task successfully and with your sanity intact.