If you have been holding back on installing Office 2007, you will most likely be installing Office 2007 on a multitude of systems. If you have already created a distribution method for Office 2007, turn around, do not pass go, this document is not for you. If you have not undertaken this journey yet, hold on to your pants and continue reading. The goal of this document is to help you achieve a comfort level that will take you into the advanced features of creating a silent installation, without you having to step into the same pot holes as I did. Please comment on this document in order to make future documents even better.
Sources:
Most of the information in this documentation was learned from the documents located at the following site:
http://technet.microsoft.com/en-us/library/cc303401.aspx
Requirements:
Windows installer 3.1
First and foremost, windows installer must be version 3.1 or greater. Updating windows installer is relatively simple and below is some code to check the current version and update it if necessary. The installer can be downloaded at http://www.microsoft.com/downloads/details.aspx
You must first check the installed version to determine if an update is required. If required, call the windows installer update subroutine below to update the version to 3.1. The install code will run the installation and verify the return code against a list to verify success.
'~~~~~~~~~~~~ Variable Declarations ~~~~~~~~~~~~~~~~~
Const For_Reading = 1
Const For_Writing = 2
Const For_Appending = 8
Dim strWinVer
Dim intRetVal
Dim strAuditFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strAuditLoc = "c:\MyCoName\audit\audit.log"
strInstLoc = "C:\MyCoName\install\Office2007\"
'######### MAIN #############
checkWinstallerVer
'###########################
'#######################################################Sub checkWinstallerVer
'LOGIT "[checkWinstallerVer]"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_Datafile Where name = 'C:\\Windows\\System32\\Msi.Dll'")
For Each objFile in colFiles
'LOGIT "Windows Installer Version Is : " & objFile.Version
strWinVer = Left(objFile.Version, 3)
If strWinVer < 3.1 Then
InstallWinstaller31
End If
Next
End Sub
'#######################################################Sub InstallWinstaller31
LOGIT "[InstallWinstaller31]"
strLaunchCmd = strInstLoc & "WindowsInstaller31x86 /passive /norestart /forceappsclose"
intRetVal = objShell.Run(strLaunchCmd,1,True)
Select Case intRetVal
Case 0
'LOGIT "Windows Installer upgrade was successful"
Case 3010
'LOGIT "Windows Installer upgrade was successful"
Case Else
'LOGERROR "Windows Installer upgrade WAS NOT successful!! QUITTING INSTALLATION! Error: " & intRetVal
WScript.Quit(51)
End Select
End Sub
Some interesting interactions occurred while working on this project. Initially, the new MSP file sounded as though it would be the answer to a silent installation. The MSP file is the counterpart to the old transform file that was previously used to deploy Office in a silent manner. It is relatively simple to access and create a MSP file using the built in Office Customization Tool (OCT) but you must first be utilizing the proper version of Office 2007 setup. The version used in this example was Office 2007 ProPlus but the OCT is not available in some lesser versions. Please check with Microsoft to get additional information. Perhaps someone knowledgeable on this topic can provide additional information about this. If you are unsure what version you have, check the version.WW file located in the root of your installation media.
The options are: Enterprise.WW; ProPlus.WW; Standard.WW; Pro.WW
Now that the disclaimer has been offered, the OCT can be accessed using the simple command line "%path%\Setup.exe /Admin".
If you do not put the customization file in the Updates folder, you can use the Setup command-line option /adminfile to specify the fully-qualified path to the file.
MSP File
The problem with using the MSP file is that it can only be used on a system one time. It is not possible to create an installation of Word and using a MSP file to perform the installation, and then attempt to reconfigure or add another component, such as Outlook using a different MSP file. After the initial installation is performed using an MSP file, you must utilize another new format to do additional installations. This new method utilizes a XML file and is discussed below.
Config.xml
In the 2007 Office release, the role of the INI file has been largely taken over by the Config.xml file.
If you are new to XML, don't fret. There are some initial rules you will need to know in order to keep yourself out of trouble.
Comments are wrapped with "<!-- Comment -->".
The text inside of the brackets can be formatted in any manner, but the text is case sensitive.
Example:
<MinOSRequirement VersionNT="501" WindowsBuild="2600" ServicePackLevel="2 or greater" />
Is parsed exactly the same as:
<MinOSRequirement
VersionNT="501"
WindowsBuild="2600"
ServicePackLevel="2 or greater"
/>
Below is the Config.xml file that was developed for my specific installation. MS Access has been removed because of compatibility issues between older versions on the new version. Hopefully the XML file will be very transparent to comprehend.
The only warning that can be offered is the uncommenting this section LIS CACHEACTION="CacheOnly" should you decide to uncomment this, note that the install will ONLY be copied to the target computer. NOTHING WILL BE INSTALLED!
Please see the attached file for the example.
For each product being installed, the OptionState Id must be specified and the installation type must be provided. Below is a snippet from Microsoft's website that discusses these options:
The OptionState element uses the following syntax:
<OptionState Id="optionID" State="Absent" | "Advertise" | "Default" | "Local" [Children="force"]/>
where:
optionId is the identifier for a feature or sub-feature to install.
Absent specifies that the feature or sub-feature is not installed.
Advertise specifies to install the feature or sub-feature on first use.
Default returns the feature or sub-feature to its default state.
Local installs the feature or sub-feature on the user's computer.
Force sets all features or sub-features to their specified states.
OptionState Id Items
Here is a list of the available OptionState Ids
- ACCESSFiles: Microsoft Office Access databases.
- Access_PIA: Primary interoperability assembly that allows Microsoft Office Access programmability with .NET Framework version 1.1 or greater.
- AccessBarcodeControl: Barcode Control.
- AccessHelpFiles: Help for Microsoft Office Access.
- AccessWizards: Database experts that ask questions about a commonly used item you want to create, and then build the item for you.
- CalendarControl: ActiveX control you can use to create fully programmable calendars in your forms and reports; includes Help files.
- DeveloperWizards: Database experts that ask questions about a more advanced item you want to create, and then build the item for you.
- AccessTemplatesIntl: Templates are complete Access database applications used to track, store, and report business and personal data. You can store the data within .accdb files or in lists on a Microsoft Windows SharePoint Services Web site.
- EXCELFiles: Microsoft Office Excel.
- Excel_PIA: Primary interoperability assembly that allows Microsoft Office Excel programmability with .NET Framework version 1.1 or greater.
- ExcelAddinFiles: Microsoft Office Excel problem-solving tools and utilities.
- ExcelHelpFiles: Help for Microsoft Office Excel.
- ExcelSampleFiles: Easy-to-use examples for Microsoft Office Excel.
- ExcelTemplatesFiles: Microsoft Office Excel Spreadsheet Templates for expense reports, invoices, timecards, purchase orders, and loan amortization.
- GrooveFiles: Microsoft Office Groove.
- OneNoteFiles: Microsoft Office OneNote.
- OneNoteHandwritingFonts: Typefaces that enable you to type with text that looks like handwriting.
- OneNoteHelpFiles: Help for Microsoft Office OneNote.
- OneNotePIA: Primary interoperability assembly that allows Microsoft Office OneNote programmability with .NET Framework version 1.1 or greater.
- OneNoteToAddIns: OneNote integration functionality with other applications.
- OneNoteMobile: OneNote companion for Windows Mobile-powered devices.
- OUTLOOKFiles: Microsoft Office Outlook.
- Outlook_PIA: Primary interoperability assembly that allows Microsoft Office Outlook programmability with .NET Framework version 1.1 or greater.
- OutlookHelpFiles: Help for Microsoft Office Outlook.
- OutlookImportExportFiles: Import from and export to popular e-mail programs, personal information managers, and standard file formats.
- OutlookStationeryFiles: Outlook Stationery.
- OutlookVBScript: Debugging tool for Visual Basic Scripting Edition. Used to automate Outlook custom forms.
- OutlookTemplateFiles: Outlook Template Files.
- OutlookMessaging: Outlook Messaging Components.
- OutlookAddIns: Outlook Add-Ins.
- OutlookOms: Outlook Mobile Service.
- PPTFiles: Microsoft Office PowerPoint.
- OrgChartFiles: Program that can be used to revise a Microsoft Organization Chart OLE object created with previous versions of this program.
- PowerPoint_PIA: Primary interoperability assembly that allows Microsoft Office PowerPoint programmability with .NET Framework version 1.1 or greater.
- PPTPresentationTemplates: Templates and designs that help you create presentations.
- PPTHelpFiles: Help for Microsoft Office PowerPoint.
- PPTSoundFiles: Sounds used for Microsoft Office PowerPoint preset animation effects.
- PPTViewerFiles: Packages the Microsoft Office PowerPoint Viewer and your presentations onto a CD.
- PubPrimary: Microsoft Office Publisher.
- PubComPrinting: Tools for printing color publications at commercial printing services.
- Publisher_PIA: Primary interoperability assembly that allows Microsoft Office Publisher programmability with .NET Framework version 1.1 or greater.
- PublisherFontSchemes: Tools to change the fonts used throughout your publication.
- PublisherHelpFiles: Help for Microsoft Office Publisher.
- PubPaperDirect: Online previews that show PaperDirect designs.
- PubWizards: Tool that helps you create a particular kind of publication or change an object in a publication.
- RMSFiles: Microsoft Office InterConnect.
- RMSHelpFiles: Help for Microsoft Office InterConnect.
- VisualStudio_PreviewServer_SPD: Microsoft ASP.NET Development Server.
- WORDFiles: Microsoft Office Word.
- Word_PIA: Primary interoperability assembly that allows Microsoft Office Word programmability with .NET Framework version 1.1 or greater.
- WordBibliographyFiles: Files that you can use with the Word Bibliography feature.
- WORDBordersFiles: Provides page borders that can be used to enhance documents.
- WordCalligly: Microsoft Word Calligraphy Add-in.
- WordEnvelopWizard: Microsoft Word Envelope Wizard Add-in.
- WordGenko: Microsoft Word Genko Add-in.
- WORDHelpFiles: Help for Microsoft Office Word.
- WordQuickFormatsFiles: Word Quick Formats theme files.
- WORDDocumentTemplates: Microsoft Office Word wizards and templates.
- WordTableWizard: Microsoft Word Table Wizard Add-in.
- XDOCSFiles: Microsoft Office InfoPath.
- XDocs_PIA: Primary interoperability assembly that allows Microsoft Office InfoPath programmability with .NET Framework. version 1.1 or greater.
- XDOCSHelpFiles: Help for Microsoft Office InfoPath.
- XDOCSNoShipFiles: InfoPath NoShip Automation Support.
- XDocsRegFormFiles: Tool for creating installable form templates.
- XDocsSamples: Form templates that you can customize to suit your requirements or use immediately.
- SHAREDFiles: Shared files for use with Microsoft Office.
- AceRepl: Installs the Microsoft Office Access Database Replication Conflict Manager, which you can use to resolve conflicts between replicated databases.
- CAGFiles: Collection of popular clip art that can be used to enhance Microsoft Office documents.
- IMEMain_1028: Microsoft Office IME (Chinese Traditional).
- IMEMain_1041: Microsoft Office IME (Japanese).
- IMEMain_1042: Microsoft Office IME (Korean).
- IMEMain_2052: Microsoft Office Pinyin IME.
- ConvertersFiltersFile: File converters and graphics filters.
- InternationalSupportFiles: Files for international support.
- OArt_DocTheme: Set of coordinated design elements, including colors, fonts, fills, and effects that can be used within Microsoft Office documents.
- OfficeDigitalSFiles: Digital certificate for signing a Visual Basic for Applications project. Allows you to avoid unnecessary security warnings.
- OffproFonts: Fonts for International languages.
- OsaNonBoot: Start menu shortcuts for creating and opening Microsoft Office documents.
- ProofingTools: Tools for proofreading Office documents.
- PubFontsSys: Extra fonts for greater design flexibility.
- TCDRegistration: ActiveX control that allows Microsoft Office clip art and templates to be downloaded from Microsoft Office Online and to be opened automatically in the associated programs.
- THEMESFiles: Set of coordinated design elements, including body and heading styles, background images, bullets, and horizontal lines.
- VBAFiles: Components to support creating, editing and executing VBA macros in Office applications.
- TOOLSFiles: Applications and support files for use with Microsoft Office.
- DocServicesFiles: Document Update Utility that keeps documents on your computer up-to-date with copies of those documents in document workspaces.
- EquationEditorFiles: Inserts mathematical symbols and equations into documents.
- Forms_PIA: Primary interoperability assembly that allows Microsoft Forms 2.0 programmability with .NET Framework version 1.1 or greater.
- GRAPHFiles: Creates charts from Microsoft Office Word, PowerPoint, and Access data.
- HTMLSourceEditing : HTML source editor for HTML authoring of Office documents.
- MsInfoFiles: Troubleshooting tool that gathers system and program configuration information.
- MSOfficeDocumentImaging: Enables you to easily scan, perform optical character recognition (OCR), search through, extract text from, and view image documents.
- MSTagPluginsFiles: Provides intelligent recognition of data types within Microsoft Office Excel and Word, and useful actions for working with the data types.
- OISFiles: Microsoft Office Picture Manager is installed with the selected options.
- OSESupp: Document publishing tools and collaboration tools for use with SharePoint Services or FrontPage Server Extensions, and an Office List component for use with Windows SharePoint Services.
- QueryFiles: Provides direct database connectivity to analyze data in Microsoft Office Excel.
- RefIEBarFiles: Enables you to use the Research tool and its collection of information services from Windows Internet Explorer.
- SetLanguageFiles: Sets language options for all Office programs.
- SmartTag_PIA: Primary interoperability assembly that allows smart tag programmability with .NET Framework version 1.1 or greater.
- WebDriveFiles: Enables you to use Web Folders on Office-compatible Internet service providers.
Logging
By default, logging goes to the %temp% directory. This can be modified by changing this line:
<Logging Type="standard" Path="C:/MyCompany/audit/Office/" Template="Microsoft Office Professional Plus Setup(*).txt" />
Additional options are logging type can be standard or Verbose. Path can be a path of your choice and the template can be modified to any name of your choosing where the * will append a unique string in its place. You can also leave out the * and if the log file previously exists, it will append log data to existing log file that was created for subsequent installations.
Slipstreaming not required
Since service pack one has been released for Office 2007, you may want to include it in your installation. Previously you were required to slipstream the product and redistribute all of your source files. Well you will be happy to know that someone in Redmond was really looking out for you. To include patches in your new distribution, all you have to do is extract the files from the service pack release and place them in the "updates" directory. The installation automatically looks for updates at installation time, and installs them. This is not to be confused with future distribution of patches and only occurs at setup time.
Licensing and Altiris
My company is unique in that we do not just buy enterprise or pro for every system and provide a standard distribution. We purchase standard, pro and enterprise licenses and then have the pleasure of attempting to manage the numbers of each. Microsoft does not make this easy to manage. In addition, I will be distributing Office 2007 standard, but using the professional source media and removing the "Pro" components. Since Altiris inventories every executable I will be creating a dummy file named MSO2007Standard.exe or MSO2007Professional.exe for my standard or professional distribution. Any distribution that carries a Professional component will also receive the dummy file for professional. It is in this manner that I plan to track who has what version. The other option is to create a registry entry for add remove programs that will do much the same thing. The point is to have a source that you can control to keep the information straight.
Conclusion
My opinion of the installation goes a little something like this. It appears that Microsoft was looking out for the little people when they developed some of the options for the new version of office. It would have been nice to see a tool to actually create the xml file for you, similar to the tool included to create the MSP file. If one is available, I was not able to locate any information pertaining to it. There are so many options in the installation file that it is mind bending. Documentation is well written, however in true Microsoft fashion, it can be hard to comprehend.