Is there a way to create an MSI file with the product key for the installer? In this particular case, I wish to deploy Office 2003 to a couple dozen workstations, but wish to do so silently, and without any intervention from the user. However, in my testing so far, it runs silently until it needs the product key to continue. Can I somehow 'bundle' the product key into the MSI?
You can create a MST file to transform the official MSI to do what you want. Check out the official documentation on the process at http://office.microsoft.com/en-us/office-2003-resource-kit/custom-installation-wizard-HA001140170.aspx.
I dug up my old notes on the subject and am providing them here. I recommend reading the documentation to better understand the process but this below should get you going very quickly.
Obtain the 'clean' installation source for the VLK version of Office 2003. (Either the eOpen website or installation media will work.)
Copy it to a local folder for modification. I chose C:\office2k3.
Replace setup.exe in the install root with the one from the self-extracting EntSetup.exe (http://www.microsoft.com/office/orkarchive/2003ddl.htm) This enables additional functionality for enforcing localized installation source which will be used later.
In your installation tree you should see a 'FILES' directory. Under this directory, create a new one named 'PATCHES'.
Using WinRAR or the command-line, extract each service pack and hotfix to the directory created in step 4. You do not need further subfolders. All files can coexist at this level. The installer will handle prioritizing of the service pack and hotfixes.
Under 'PATCHES', open OHotFix.ini with a text editor and 'OHotfixUILevel'. Set it to 'q' for silent deployment.
Install the Office 2003 Resource Kit (http://www.microsoft.com/office/orkarchive/2003ddl.htm) and open the Custom Installation Wizard. You'll create a MST file that is used at installation to fine tune setup options including the installation key. Save this MST file to the same path as PRO11.msi. I even borrowed PRO11 for the filename and went with PRO11.mst for convenience.
The rest of the deployment preparation will occur in Setup.ini, find it under FILES\SETUP. Make a backup of this file. I recommend using setup.ini.bak. You can always then roll back to the unedited version when you mess something up!
Locate the [MST] section of Setup.ini and reference the created MST file. If you placed the file in the same path as the installer and MSI, you don't need a path. My line looks like MST=PRO11.MST.
We'll need to manipulate the installation GUI so that it will run without user interaction. Under [DISPLAY] set Display=reduced. This is equivalent to qb- at the command-line so you get the progress indicator.
The next step is to setup version control. I'm sure I'll be adding hotfixes and changing tweaks in the MST file. Let's start keeping track of that stuff. I figured a good way to do it, would be to log a version number using the date of modification in the installation log. Under [LOGGING], I set the filename using Template=Microsoft Office 2003 Setup YEARMMDD(*).txt The date will coincide with a changelog entry in CHANGELOG.txt which I've created in the installation root. Now when I later go to a machine that has a problem, I can tell what's been fixed since that particular installation by getting the date from log file in the %WINDIR% folder. I'll know if that particular problem has been fixed.
The next step is to enforce a localized installation cache or repair/reinstall. Many remote users have needed this and it's been broken since we started using Administrative Installation Point (AIP) to deploy office. (Note: we are no longer using AIP.) Fix it, with [Cache] ENFORCECACHE=1
The last step is to setup the chained installs. These run after Office setup completes in numerical order starting with the Service Packs and Hotfixes.
TaskName=Integrate SP3 and Hotfixes
TaskName=Install File Format Compatibility for Office 2007
Setup can be ran now manually by double clicking setup.exe or by script with no need for commandline arguments. Everything is conveniently handled with setup.ini. As new updates are released, extract them and place the MSP file in the PATCHES directory then create the entry in your CHANGELOG to note the change. Don't forget to also update the date in setup.ini