Welcome to TechNet Blogs Sign in | Join | Help
How do CMW files in Office 2000-2003 work? How to maintenance MSP files work in Office 2007-2010?

Here is a quick walk through showing the keys that are used to control the CMW and custom MSP files to determine what settings will take effect and if they had been run for the current user or not.

For the purpose of this walkthrough I have created this maintenance MSP. To keep it simple I am going to apply the following two changes in this custom .msp.

disableLivePreview

Add reg key

I then saved my custom maintenance MSP.

We will want to discover the GUID for this MSP. To find the GUID of a maintenance MSP you can right click the msp and goto properties. We will be looking at the revision number.

*note* In vista you will not be able to find the GUID this way.

From Windows 7:

custom_msp_properties

From Windows XP:

XPProp

So the GUID for this Custom.msp is {F920DCF9-E152-416E-A665-0E8342E48E1C}.

*note* If you make any changes to this custom.msp and resave the guid will change.

Now I am going to install this custom.msp on a machine that already had Office 2007 on it. Now that it is installed let’s dig into what happens in the background to ensure that these settings apply to each user.

Here is a screenshot of where the workstation keeps track that the MSP file is installed and what it is supposed to do on the machine. 

After running it, it gets listed in:
HKLM\software\wow6432node\microsoft\office\12.0\user settings\{GUID} (For a 64bit machine)
or
HKLM\software\microsoft\office\12.0\user settings\{GUID} (For a 32bit machine)

This key basically tells Office that there is a MSP file that was installed and needs to be run for each user. The things to notice, #1 the count value and #2 the subkeys below the guid will list the actions that the patch will take when the settings apply to the individual users.

Count = 1
Capture 

We see here that it is going to set HKCU\Software\Microsoft\ODSupport, and we can see it will also set HKCU\software\microsoft\Office\12.0\Word\options\Vpref  fLivePreview_2902_1=0X00000000 (0).

The fLivePreview registry key is what controls “enable live preview”. In this case we are unchecking it.
Capture2

Now look at the same location but in HKCU. This is how Office determines if it has been run for the current user or not.  Notice that I am missing HKCU\software\microsoft\office\12.0\user settings\{F920DCF9-E152-416E-A665-0E8342E48E1C}.

HKCUhive

It is missing because I have not yet run Office after applying the MSP file.

This next screenshot is after I opened an office product. Now that I have run an office product I do have HKCU\software\microsoft\office\12.0\user settings\{F920DCF9-E152-416E-A665-0E8342E48E1C} with a count of 1. This key basically tells office that this MSP file has already been run for this user, and thus doesn’t need to be run again. This is how an msp knows to apply or not apply to each user. Even if you double clicked the MSP file a second time, it still wouldn’t reapply for the user below because that MSP has already been run once according to the HKCU\software\microsoft\office\12.0\user settings\{GUID}\Count=1 key. Reinstalling the MSP will not increase the HKLM count and as long as the HKLM and HKCU count match it will not re-apply. You could make a new MSP and apply it and then that one would apply because the new MSP would have a new GUID with its own count.

HKCUhive2

Notice my settings have taken effect:

livepreview

odsupport

If you wanted an MSP file to re-apply to test its settings or its functionality, you could simply delete the HKCU\software\microsoft\office\12.0\user settings\{GUID} key and rerun office. Since the HKCU count won’t match the HKLM count, it will re-apply. Or if you wanted to get it to re-apply to all the users on a machine you could just increase the HKLM count to “2”. When the users launch office the HKLM count won’t match the HKCU count value and the MSP will re-apply.

Both MSP files and Office 2000-2003 CMW files operate in this way. There is one major difference between MSP files and CMW files however.

If you rerun an msp the local HKLM count value will always be 1. It doesn’t increase the count, so it will never reapply for a user. This is not case with a CMW file. Each time you apply a CMW, the HKLM “count” key will increase and cause the CMW settings to re-apply for users even if it had applied for them previously. This can cause issues especially in roaming environments.

Take this scenario into consideration.

You have a network that has enabled roaming profiles. You have 5 terminal servers in your terminal server farm that people  connect to with their roaming profile. The terminal servers in the farm have load balancing is enabled. You have a CMW file that you have applied to all 5 terminal servers that is designed to autocreate users Outlook profile. On one of the terminal servers you have applied the CMW twice by accident or otherwise.

Let’s say that there is a user named Jim who connects to the terminal servers and hasn’t had any problems until last Friday. Last Friday when he hit the term server farm and opened outlook, outlook expectantly reconfigured on him. This is the first time this has happened to him. In this scenario you can see that what happened is that Jim was lucky enough to always be routed to the 4 terminal servers that did NOT have the CMW file run more than once. As a result when Jim closed his previous sessions his HKCU count for the CMW file was always 1. Then last Friday when he hit the term server farm he was routed to the 5th terminal server that had previously had the CMW file run twice. As a result that terminal server has an HKLM count of 2 for the CMW. When he opened Office an evaluation was done and the machine discovered that his HKCU count was 1. As a result it reapplied the CMW file thus overwriting his previous Outlook profile.

When using CMW files in a roaming environment it is important to make sure that the CMW file is not rerun on some machines unless it is rerun on all machines as you don’t want a mismatch of HLKM counts for a particular CMW.

Deploy Office 2007 via GPO startup script

 

Occasionally we have customers that want to deploy Office 2007 via a GPO startup script. We have a technet article that discusses this process.

Technet Article:
Use Group Policy to assign computer startup scripts for 2007 Office

I thought however it might be nice to create a live video that walks through the process.

Enjoy

How to deploy QAT toolbars in Office 2007

Issue:

==========
How to deploy QAT toolbars in Office 2007.

Resolution:
==========

*Important Note*

By default Office 2007 QAT files are stored Office folder that is in the “local” profile.
In Windows Xp this location = "%userprofile%\local settings\application data\Microsoft\office
In Vista\Windows 7 this location = %appdata%\local\Microsoft\Office

When adding QAT files to the “add files” section of the OCT the default dropdown location that you should choose is “[AppDataFolder]\Microsoft\Office”. The problem with this however is that “[AppDataFolder]\Microsoft\Office” from the OCT actually ends up pointing to these “roaming” locations:

In Windows Xp this location = "%userprofile%\application data\Microsoft\office
In Vista\Windows 7 this location = %appdata%\roaming\Microsoft\Office

This is a problem, because the OCT is placing the QAT files in the roaming section of the users profile, but Office looks in the “local” section of the users profile by default.

To fix this, Microsoft has provided a hotfix that forces Office to use the “roaming” folder in the users profile instead. This hotfix is from KB955142 This hotfix has since also been superseded by Sp2. These instructions for deploying the QAT files assumes that you will be applying the hotfix, or pushing Sp2 with your Office 2007 deployment. If you are pushing Sp2 with your deployment you do NOT need the hotfix from KB955142. Installing the Hotfix or Sp2 to resolve this problem is the first part of the solution. The next part of the solution is to also add a reg key that tells Office to use the Roaming folder.

1. Create the QAT files

a.            Go to a machine with office 2007 installed and modify the Quick Access Toolbar.
b.            The folder that contains the .QAT file is hidden so we must show hidden files and folders. To do this, open my computer, click tools, folder options, then click on the view tab. Put a dot in "show hidden files and folders"
c.            Browse out to the "%userprofile%\local settings\application data\Microsoft\office" folder. In here you will see a .qat file for each app.

2. Add them to the OCT in the “add files” section. For the destination path choose  “[AppDataFolder]\Microsoft\Office”

Should look like so..

clip_image001

3. Add the following “dword” registry key to the “Add reg keys” section. (This step tells Office to use the roaming folder rather than the local folder for QAT files.) 

HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\Toolbars\
QuickAccessToolbarRoaming =1

Like so..

clip_image002

4. Save and close the custom.msp

5. Extract the MSP files from the following private hotfix KB955142 or Sp2 and place them in the updates folder of your office 2007 installation source.

To extract Office 2007 patches use the following syntax: office-kb955142-fullfile-x86-glb.exe /extract

6. Install Office.

Office 2007 - Deploying Additional Languages

Today we will discuss the various methods available to deploy additional languages for Office 2007.

Key 
----------
MLP = Multi Language Pack
LP = Language Pack


When talking about adding additional languages to Office 2007 there are two topics to discuss.

1. Deploying Office 2007 with additional languages included. (During Office 2007 install)
2. Deploying additional languages after Office 2007 has already been installed. (Post Office 2007 install)


How to deploy additional languages during the installation of Office 2007.

To accomplish this we will need to add the required language to our installation source, and then modify the config.xml to include that language during our installation. We will be adding Italian to our Office 2007 ProPlus installation.

First I will copy the ProPlus media from the CD to a folder on my desktop.

Screenshot -

ProPlus

In order to incorporate the Italian language pack into my Office 2007 ProPlus installation source, I will locate all of the it-it folders from the root of my MLP disc one, and copy them into the Office 2007 source folder.

Screenshot-

with italian

You will notice in my screenshot that I had copied over a few Italian folders that do not correlate with my original Office 2007 product. For example, you can see that I have a Groove.it-it folder however ProPlus doesn’t include Groove. Technically I would only need to copy over the Italian folders for the products that are included with ProPlus. Word.it-it, Excel.it-it etc. It is recommended to also include the Omui.it-it, Xmui.it-it folders in the Office source. It won’t hurt anything to have the additional it-it folders (Like groove.it-it) and in fact isn’t a bad idea to do so. Because you can add multiple products to the Office Source folder having groove.it-it already there might come in handy in the future if groove/enterprise gets added to the Office source.

Now that I have English and Italian copies of all of the individual products in the ProPlus source, I need to specify that during the installation of Office I will want both languages installed. I will do this through the use of the config.xml. In the ProPlus.ww folder I opened the default config.xml with notepad and modified it to read like so:

<Configuration Product="ProPlus"> 

<Display Level="basic" CompletionNotice="yes" SuppressModal="no" AcceptEula="yes" /> 
<Logging Type="verbose" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" />
<PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" />
<Setting Id="SETUP_REBOOT" Value="Never" /> 

<AddLanguage Id="en-us" ShellTransform="yes"/>
<AddLanguage Id="it-it" />

</Configuration>

 

The AddLanguage element is what tells Office to install the languages. In my config.xml above I am specifying to install English and Italian.

The shelltransform=”yes” tells office that right click menus, and some folder menu items will also be in English. For example, the language tools folder will be in English. Had I set the Shelltransform=”yes” on Italian, the language tools folder name would be in Italian as would the context menus when I right click on a Docx for example.

Another option is to use addlanguage=”match”. Using match will cause the installation to install whichever language matches the primary language of the operating system (provided that language is in the Office source). Because my operating system is using English as the primary language the following entry in the config.xml would have exactly the same effect as my config.xml example above and install both English and Italian and set the shelltransform to English.

<AddLanguage Id="match" ShellTransform="yes"/>
<AddLanguage Id="it-it" />

Now I will run setup and call the config.xml:

\\server\share\Office2007\setup.exe /config \\server\share\Office2007\ProPlus.ww\Config.xml

Example:

Deploying additional languages after Office 2007 has already been installed. (Post Office 2007 install)

There are a few different ways to accomplish this.

1. “Modify” the installation of Office 2007 (which is already installed) to include an additional language. I think of this like “slipstreaming” the language pack into the Office 2007 install.

2. Install a language pack as a standalone application.

The first option to “modify” the installation of Office 2007 to include another language (slipstream the additional language into the Office install) is done like so:

Even though I already have Office 2007 installed, I am going to add an additional language to my Office 2007 installation source, modify the config.xml for ProPlus and re-run setup calling the new config.xml.

I am also going to use the “RemoveLanguage” element here to remove Italian to show how that works. 

Here is my source from the previous section.

with italian

I am going to add French to this source. Just like before, I will copy the FR-FR  folders from the MLP into my source.

french

I will modify my config.xml in the ProPlus folder to look like so:

<Configuration Product="ProPlus"> 

<Display Level="basic" CompletionNotice="yes" SuppressModal="no" AcceptEula="yes" /> 
<Logging Type="verbose" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" />
<PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" />
<Setting Id="SETUP_REBOOT" Value="Never" /> 

<AddLanguage Id="fr-fr" />
<RemoveLanguage Id="it-it" />

</Configuration>

 

And now I will rerun setup and call the config.xml:

\\server\share\Office2007\setup.exe /config \\server\share\Office2007\ProPlus.ww\Config.xml

There are some disadvantages to installing language packs this way. One of the biggest disadvantages to using this method is that the Language pack will not show in Add/Remove programs. This is why I think of this like slipstreaming the language pack into the Office 2007 install. The language pack is now a part of the Office 2007 install, and cannot be uninstalled separately. Another reason why this is a problem is because you can’t determine what service pack level the language pack is at via Add/Remove.

You can look in the registry however to determine what language packs are installed, and also what service pack level the language pack is at. On my machine I will look in the following reg key.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Here I will find the guids for Office 2007, and for the language packs that are applied to Office 2007.

Notice that this is also where I can find out what service pack level the language packs are at.

eng reg

french reg

Example:

The second option for installing a language pack post Office 2007 installation is to install it as a standalone application. This is a better option, and is the way that I recommend that people install language packs for Office if they are not integrating them into the initial install.

To accomplish this I am going to copy all of the Spanish folders from my MLP disc into its own directory. I am also going to move over the Catalog, and updates folder, and setup.exe.

 spanish standalone

Next I am going to modify the config.xml that is located in the Omui.es-es folder. Here is how it looks after my modification.

<Configuration Product="OMUI.es-es">

<Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="yes" /> 
<AddLanguage Id="es-es" />

</Configuration>

*NOTE*
Now there are 2 gotchas that need to be addressed at this point.

The first is… notice that in my config.xml from the Omui.es-es folder I am specifying the addlanguage element. You would think that this wouldn’t be needed, because if I am pointing to the config.xml for Spanish (es-es) it should automatically add Spanish, and this is the case if the display level is set to “full”. But if we set the display level to NONE or Basic, and we install the LP using this method without setting the addlanguage element what will happen is that it will appear to install, however you won’t be able to change the menus for Office to Spanish. This is a known issue. It is best to get in the habit of always adding the addlanguage element to any config.xml if you are in fact adding an additional language beyond the original.

The second gotcha that you should be aware of is that when you install a language pack using the method above the setup screens will be in the language of the LP IF that is the only language that is in the source. So above when I run my command \\server\share\Spanish_LP\setup.exe /config  \\server\share\Spanish_LP\omui.es-es\config.xml I see the following setup screen:

spanish

Notice that the progress messages are in Spanish. So what happens if you add an additional language to your custom language pack installation source? Well lets add Russian to the LP source:

Access and Russian

Now I mentioned above that if Spanish is the only language in the LP source and I run setup, the setup screens, progress text will be in Spanish. What will happen now if I run the same command to install Spanish now that I have added Russian to the source?

I get the following screen.

choose lang

It will prompt the user to choose which language of the two that are in the LP source to use for the setup window and progress texts. Even if I choose Russian it will still install Spanish, but the setup screens will be in Russian. To understand why this happens we need to understand how setup decides what language to use for the setup windows. As you could guess, first setup will automatically use whatever language is available IF there is only one language available. So if only Spanish folders are in the LP source, the setup screens will be in English. Next… if there is more then one language for Setup to choose from for it’s setup screens it will default to the language that the OS is using as the primary language (If that language is available). In my last example I have Spanish and Russian in the LP source, but my operating system is using English as it’s primary language. Since setup.exe wants to default to English for the setup screens, but doesn’t have English folders in the LP source it then doesn’t know what language to fallback on and prompts. This is important to know because if you are trying to push a LP silently or with a basic display and you don’t have the same language included in the LP source that is being used by windows as the primary language, the users will be prompted to choose a language, and it won’t be the language they are using by default in Windows.

The way to ensure that the Spanish language pack will install with English setup screens and progress texts is to also add english to the LP source. I have done so:

Access and Russian and english

Now when I run my command to install Spanish like I did above, the setup screens will be in English because English is available in the source, and it matches the primary language of the OS.

 

 

 

Here is my command again:

\\server\share\Spanish_LP\setup.exe /config  \\server\share\Spanish_LP\omui.es-es\config.xml

And here is how the setup screens look now as it is installing the Spanish language pack.

english display

After setup is complete you should be able to change the language that Office is displayed in. Also you should be able to look in Add/remove programs and see the language pack, it’s version, and have the ability to uninstall it separately from the Office 2007 suite.

Example:

How to chain additional addins, or programs when deploying Office 2007. Chaining getting started tabs in this example.

We often have customers that want to add additional programs or addins with the Office 2007 installation. Often they will try to use the Office Customization tool to perform this function. Unfortunately the OCT function,  “add installations and run programs”, is not very good at running more than a single additional addin or program.

Here is where it is often attempted:

 Capture

This is NOT where I recommend chaining additional programs and features. I have found that a much more reliable way to chain is by using the config.xml.

In this example I will be chaining the getting started tabs which can be downloaded below:

*note* .net framework 2.0 is required for these to install. This guide assumes .net framework 2.0 is already installed.

Excel 2007 Add-in: Get Started Tab for Excel 2007
Word 2007 Add-in: Get Started Tab for Word 2007
PowerPoint 2007 Add-in: Get Started Tab for PowerPoint 2007

If you are installing Office 2007 ProPlus, you will have a ProPlus.ww folder. If you are deploying Office 2007 Enterprise you will have an Enterprise.ww folder. The config.xml file that we want to modify will by in the WW folder for the product you are installing.

In this example I am deploying Office 2007 Proplus. So I will be modifying the config.xml file that is in the ProPlus.WW folder. My default config.xml looks like this:


<Configuration Product="ProPlus">

    <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> -->
    <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> -->
    <!-- <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" /> –> 
    <!-- <USERNAME Value="Customer" /> -->
    <!-- <COMPANYNAME Value="MyCompany" /> -->
    <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->
    <!-- <LIS CACHEACTION="CacheOnly" /> -->
    <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->
    <!-- <DistributionPoint Location="\\server\share\Office12" /> -->
    <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->
    <!-- <Setting Id="Reboot" Value="IfNeeded" /> -->
    <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

*note* For more information about customizations that are possible with the config.xml see this post.

Before we begin I should mention that the <!-- --> that is embracing each line is how a line gets “commented out”. In other words, none of the lines in this config.xml are currently active or being used.

The line we will be working with is the last one. The default line reads: 
  <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> –>

To deploy the getting started tabs, we will want to modify this line and add additional lines. I will cut to the chase. Here are the lines I would use to deploy these addins from c:\Officeaddins\ during the Office 2007 install.

<Command Path="%windir%\system32\msiexec.exe" Args="/i C:\Officeaddins\Excel2007GetStartedTabSetup.msi /qb" ChainPosition="after" Execute="install" Wait="-1"/> 

<Command Path="%windir%\system32\msiexec.exe" Args="/i C:\Officeaddins\Word2007GetStartedTabSetup.msi /qb" ChainPosition="after" Execute="install" Wait="-1"/> 

<Command Path="%windir%\system32\msiexec.exe" Args="/i C:\Officeaddins\PowerPoint2007GetStartedTabSetup.msi /qb" ChainPosition="after" Execute="install" Wait="-1"/>

As long as I had the msi files in the c:\officeaddins directory the above lines in the config.xml would install them during the Office 2007 ProPlus installation. You might ask… well how do I make sure that these files are in a directory named “Officeaddins” in the c drive on all the machines that I will be deploying Office to? I’ll get to that in a minute.

First let’s break down one of these lines and each part of it.

<Command Path="%windir%\system32\msiexec.exe" Args="/i C:\Officeaddins\Excel2007GetStartedTabSetup.msi /qb" ChainPosition="after" Execute="install" Wait="-1"/>

Command Path="%windir%\system32\msiexec.exe" (This tells windows to use MSIEXEC to perform the install. The default line in the config.xml simply has “Command Path="msiexec.exe" I would not recommend leaving this as is. Msiexec will not always end up being found correctly.

Args="/i C:\Officeaddins\Excel2007GetStartedTabSetup.msi /qb" (This tells MSIEXEC to perform an install “/i” and to perform the install of “C:\Officeaddins\Excel2007GetStartedTabSetup.msi” and to do it with a progress bar only “/qb”.

ChainPosition="after" (This tells the Office install to perform the install AFTER the office 2007 install. If you had this set to before, it would attempt the install before the Office 2007 install.)

Execute="install" (This tells the Office install to “install”. Uninstall would also be an option.)

Wait="-1” (This tells the Office install to wait between each of the addins installation. This is vital, because otherwise they would try to install at the same time and would almost surely fail.)

Ok.. Now.. let’s discuss two things. How the lines in the config.xml change if you are using a source that contains spaces, and how to make sure that the addins are on the local machine in a location that they can be installed from. From here are on are the exact instructions that I would recommend as a best practice to chain these addins with Office 2007.

First… let’s add the addins into the custom.msp from the OCT tool. This will “inject” the files into the MSP and then they will be laid back down into a desired location on the local machine during the Office install.

I think it is good practice to lay the addins into the C:\Program Files\Microsoft Office\ directory. To do that, open the OCT and goto the “add files” section of the OCT. Add each of the files and for the destination path choose [Installlocation]. [Installlocation] will map to C:\Program Files\Microsoft Office\ by default (If using a 32 bit OS).  Here is a screenshot of how my OCT looks when I add these files as described above. 

Capture1 

Since I will be laying the addins down to the C:\Program Files\Microsoft Office\ location in my example, I will need to change the syntax in the config.xml to accommodate for the new path. Also because C:\Program Files\Microsoft Office\ contains spaces the previous example would fail without some syntax modification.

Here are the lines I will be using in the config.xml now. (Notice the “ and ‘ to make up for the spaces in the destination path)

<Command Path="%windir%\system32\msiexec.exe" Args='/i "C:\Program Files\Microsoft Office\Excel2007GetStartedTabSetup.msi" /qb' ChainPosition="after" Execute="install" Wait="-1"/>

<Command Path="%windir%\system32\msiexec.exe" Args='/i "C:\Program Files\Microsoft Office\Word2007GetStartedTabSetup.msi" /qb' ChainPosition="after" Execute="install" Wait="-1"/>

<Command Path="%windir%\system32\msiexec.exe" Args='/i "C:\Program Files\Microsoft Office\PowerPoint2007GetStartedTabSetup.msi" /qb' ChainPosition="after" Execute="install" Wait="-1"/>

Now when I install Office 2007 ProPlus using the custom.msp that I created with the files added to the “add files” section as above, and the config.xml has been modified with these latest 3 lines to point the addin installs to C:\Program Files\Microsoft Office\. The addins are successfully chained during the Office 2007 install.

Related articles
==========
Sequentially install multiple products of the 2007 Office system
http://technet.microsoft.com/en-us/library/cc179200.aspx

Customize Office 2007 by using the Config.xml

If you are looking to customize Office 2007 you may be interested in using the config.xml for your customizations.

Let’s break apart the config.xml and see what we can do with it.

*note* this blog entry is a breakdown of this technet article. For more detailed information about any particular section check that article.

Here are the contents of the config.xml for Office 2007 ProPlus in it’s default state:

<Configuration Product="ProPlus">

    <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> -->
    <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> -->
    <!-- <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" /> –> 
    <!-- <USERNAME Value="Customer" /> -->
    <!-- <COMPANYNAME Value="MyCompany" /> -->
    <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->
    <!-- <LIS CACHEACTION="CacheOnly" /> -->
    <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->
    <!-- <DistributionPoint Location="\\server\share\Office12" /> -->
    <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->
    <!-- <Setting Id="Reboot" Value="IfNeeded" /> -->
    <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

-Points of Interest-

1. If you are going to customize the config.xml it is important to remember that the config.xml is an XML document and as such there needs to be opening and closing tags or you could end up with a syntax error.

In this example below you can see that < is the opening tag and /> is the closing tag.

<USERNAME Value="Customer" />

If we changed this line to read: <USERNAME Value="Customer" > we would end up with a syntax error.

*Hint* Open your config.xml with internet explorer to check your syntax. If your file syntax is missing a tag you will get a message like so:

config

2. In a config.xml the starting <!-- and ending --> are comment lines. You must remove them if you want to use a particular line.

-config.xml options-

Let’s look at each line of the config.xml and discover the options we can set.

<!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> –>

The above line can be modified to specify the various options for the installation UI.

Display Level=

Level

None

No Setup UI is displayed. Setting Display Level="none" directs Setup to run a silent install (unattended install). See the Remarks section for more information.

 

Basic

Setup displays the Welcome screen, the Product Key (PIDKEY) page (if needed), the End-User License Agreement (EULA) page (if needed), a progress bar, and the completion notice (if allowed).

 

Full (default)

Setup displays all UI to the user.

CompletionNotice=

CompletionNotice

Yes

Only applies if Level is set to "Basic" or "None": Setup displays the completion notice.

 

No (default)

Only applies if Level is set to "Basic": Setup does not display the completion notice.

SuppressModal=

SuppressModal

Yes

Only applies if Level is set to "Basic": Setup does not display error messages and other dialog boxes that might interrupt the installation.

 

No (default)

Only applies if Level is set to "Basic": Setup displays errors and other dialog boxes as needed.

AcceptEULA=

AcceptEULA

Yes

The End-User License Agreement is accepted on behalf of the user. Setup does not display the EULA page.

 

No (default)

If Level is not set to "None", Setup displays the EULA page.

NoCancel=

NoCancel

Yes

If Level is set to "Full" or "Basic", disable the cancel button (X in upper-right corner of the progress dialog).

 

No (default)

If Level is set to "Full" or "Basic", allow the user to cancel the installation from the progress bar.

NoteNote:

In enterprise deployments, it is recommended that you set the Display level value to none to direct Setup to run a silent install, to prevent prompting users to enter information, and to prevent the installation from waiting for any user interaction, including when files are in use. Setting the Display Level value to none assumes that the SuppressModal and CompletionNotice attributes are silenced and that the end-user license agreement (EULA) is accepted. Administrators must also make sure that no Office applications are running during an installation of the 2007 Office system.

If you set the Display level value to basic and SuppressModal to yes, users may be prompted if any Office files are in use. Setting Display level to none prevents prompting users in such cases. The SuppressModal attribute does not prevent files in use messages from displaying; only Display level set to none prevents their display.

The Display element is used by Setup only if Setup finds the Config.xml file in the same folder as setup.exe, or if you specify the Config.xml file by using the Setup /config command-line option. If Setup uses the Config.xml file in the product folder, then Setup uses the default display options.

So if we modify want to ensure that the Office installation is silent to the end user, Auto accepts the EULA, doesn’t display a completion notice, and ensures that popups or other dialog boxes don’t come up to interrupt the installation we would modify the “display” line to read:

<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />

-----------

The next line in the config.xml is the logging line. The default line looks like this:

<!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> –>

This line is used to specify the logging type, the location of the log file, and the template name of the log file.

Logging type=

Type

Off

Setup does no logging.

 

Standard (default)

Setup writes installation information to the log file.

 

Verbose

Setup writes all installation information to the log file.

Path=

Path

Path

The fully qualified path to the folder used for the log file. You can use environment variables. Default is %temp%.

Template=

Template

filename.txt

The name of the log file. If you insert the string * anywhere in the file name, a unique log file is created for each installation performed by Setup.exe (see the explanation below). If * is not included and the file name specified already exists, log information is appended to the existing file. The .txt file extension must be included. The default template is SetupExe(*).log.

So if we want to ensure that the Office installation creates a verbose log file that is placed in the root of c:\, with a name of “Office_install.log” we would modify this line like so:

<Logging Type="verbose" Path="c:\" Template="Office_2007.log" /> 

I would always recommend setting the logging type to verbose. If you have a failure during the install, a verbose log file will offer much more information than a standard log.

-----------

The next line in the config.xml is the PIDKEY line. The default line looks like this:

<!-- <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" /> --> 

Simple enough. This is where you could place your valid product key for the installation to accept it automatically.

If configured we would remove the comment lines and it would look like so:

<PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" />

-----------

The next three lines in the config.xml are used to set the username, company name, and installation location. Pretty self explanatory. 

<USERNAME Value="Customer" /> 
<COMPANYNAME Value="MyCompany" /> 
<INSTALLLOCATION Value="%programfiles%\Microsoft Office" />  

----------

The next line is for setting up a “cacheonly” installation of Office 2007.

The syntax is:

<LIS CACHEACTION="CacheOnly" />
or
<LIS CACHEACTION="RemoveCacheOnly" />

So what is the purpose of doing a cacheonly installation? This is used for staging. As an example, let’s say that you want to install Office on 100 computers, but you are concerned about the bandwidth required for the installation on that many machines. You could “stage” by using cacheonly. What you might do is setup the installation to “cacheonly” on 25 machines today, 25 tomorrow, 25 the next day, etc… Then after all the machines have cached the installation of Office 2007 at a later date you could push the command:

C:\MSOCache\All Users\{90120000-0011-0000-0000-0000000FF1CE}-C\setup.exe /adminfile \\server\share\custom.msp

*note* in this example I am using ProPlus. If we were using a different version of Office the Guid would be different.

This is handy because then all 100 machines would install Office at the same time from their local source. This would help remedy concerns with bandwidth utilization.

----------

The next two lines are is for setting up a sourcelist, and a distribution point.

SOURCELIST, is a list, separated by semicolons, of one or more network installation points that contain the installation files for the product

Syntax would be:

<SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" />  

DISTRIBUTIONPOINT, specifies the fully qualified path to the network installation point from which the installation is to run.

Syntax would be:

<DistributionPoint Location="\\server\share\Office12" />

NoteNote:

The DistributionPoint element is used by Setup only if Setup finds the Config.xml file in the same folder as setup.exe, or if you specify the Config.xml file using the Setup /config command-line option. If Setup uses the Config.xml file in the product folder, it ignores this element because the network installation point has already been found.

----------

The next line is for setting optionstates. This line can be used to prevent/allow features from installing. To perform this you need to know the name of the option state. For a list of option states review this technet article. 

OptionState element

Specifies how specific product features are handled during installation.

clip_image001Important:

In most situations, it is recommended that you use the OCT to change the installation state of features. The equivalent option in the OCT is Set feature installation states.

Attributes

Attribute

Value

Description

Id

optionID

An item that the user can choose to install.

State

Absent

The feature is not installed.

 

Advertise

The feature is installed the first time it is used.

 

Default

The feature returns to its default installation state.

 

Local

The feature is installed on the user's computer.

Children

force

All child features of the feature are set to the specified state.

Remarks

A feature is an item that the user can choose to install. The Id value for a feature is defined in the Option element of the Setup.xml file in the core product folder.

For a list of OptionState Id Values, see Config.xml file OptionState Id values. For information about modifying the OptionState element in Config.xml, see the Modifying the Config.xml File OptionState element section in Use Group Policy Software Installation to deploy the 2007 Office system.

So for example, let’s say that we want to prevent Word from installing. We could use the following syntax:

<OptionState Id="WORDFiles" State="absent" Children="force" /> 

This would ensure that the Word feature would be absent (not installed), and the subfeatures under the Word tree would follow the absent state.

----------

The next line is for specifying whether or not you want the computer to reboot after the installation is complete.

*note* The default line in the config.xml has incorrect syntax.

The correct syntax for this line should be:

<Setting Id="SETUP_REBOOT" Value="IfNeeded" />

The options for the value are:

AutoAlways--Always initiate a reboot. Do not prompt the user.
Always--Always prompt for a reboot at the end of setup.
IfNeeded--Prompt for a reboot at the end of setup if setup requires a reboot. (Default)
AutoIfNeeded--Initiate a reboot if setup requires a reboot. Do not prompt the user.
Never--Never initiate or prompt for a reboot.

So if we wanted to prevent a reboot after the installation we would use:

<Setting Id="SETUP_REBOOT" Value="Never" />

----------

The last line in the config.xml is used for chaining additional installations during the install of Office 2007. Rather then include the details of this line here, please review this blog entry for further information on chaining via the config.xml

------------------------------------------------------------------------------

So now we have learned what options can be configured in the config.xml. To call your config.xml during your office installation, use the following syntax:

\\server\share\setup.exe /config \\server\share\proplus.ww\config.xml

*note* You can use this with the custom msp by using syntax like so:

\\server\share\setup.exe /adminfile \\server\share\custom.msp /config \\server\share\proplus.ww\config.xml

Remember that if you call both the config.xml and the custom.msp in your installation line, and there is a conflicting configuration setting, the config.xml will take precedence.

-Office 2007 customized install walkthrough-

-Office 2007 customized deployment walkthrough-

In this walkthrough we will create a custom Office 2007 source. We will customize our Office 2007 installation via the config.xml and the Office Customization wizard.

Become familiar with the following acronyms, as they will be used throughout this walkthrough.

OCT = Office Customization Tool 
RTM = Original retail release (Release to Manufacturing)
GPO = Group Policy Object
VL = Volume License
SP = Service Pack

There are a few important things to know/complete before we begin.

1. The RTM version of the OCT has been updated. There is an updated version of the OCT that should be downloaded here:

2007 Office system (SP2) Administrative Template files (ADM, ADMX, ADML) and Office Customization Tool (AdminTemplates.exe)
http://www.microsoft.com/downloads/details.aspx?FamilyId=73d955c0-da87-4bc2-bbf6-260e700519a8&displaylang=en

 
This download contains a couple useful items:

     Oct 2.0 

· The Office GPO ADMs and ADMX files
· The updated OCT tool files
· An XLSX spreadsheet that contains all of the settings that can be manipulated via the office GPOS and the “modify user settings” section of the OCT. *I use this searchable file all the time. It is nice to be able to search for a setting, see what registry keys each setting manipulates to take effect, and also the hierarchy of the settings as you will see them in the OCT and in the GPO. *    -Note- The Outlook ADM settings are missing in the Sp2 xls spreadsheet. An update is expected.

When you run AdminTemplates.exe you will be prompted for a location to extract the contents. Extract them to a location that is handy. In order to update the OCT tool, copy the admin folder from your handy location, and overwrite the admin folder that is in your local Office 2007 source.
 *Naturally if your Office source is on a CD this will fail. Copy the Office 2007 source to a local folder or network share first*

After replacing the admin folder, the next time you run the OCT, it will be version Sp2 of the OCT.

-       What if you already have an MSP that you had created in the previous version?  

If you already have a custom.msp that you had created in the RTM version of the OCT, I would recommend that you create a brand new MSP with the new OCT, and manually recreate the settings from your original. The reason why you should do it this way rather than just resaving your old .msp with the new OCT, is because there are a couple syntax issues in the RTM version that will give you the opposite results of what you expect in the newer version. Example: In the RTM version of the OCT you might set the following item to enabled:

cached

Now if you install version Sp2 of the OCT and simply resave your msp, look at how this option is now worded.

cached2

So if you previously had this setting set to enabled (to disable cached exchange mode in new profiles) in the RTM version it wasn’t working because there was a syntax error (maybe you didn’t know it though) and now that you open and resave with Sp2 OCT the option is USE Cached exchange mode. If you didn’t know to check, it will still be enabled, and now it will be working correctly (in that it will enable cached exchange mode), but that won’t be what you want. You wanted the opposite. You want this option disabled.

Anyway… hopefully that sold you. Don’t just open and resave your .msp with the new version of the OCT. Open the old one side by side with a fresh new one and manually duplicate the settings so you can review the options in the Sp2 version and make sure it is doing what you want.

 2.    The config.xml will take precedence over the custom.msp that we will create. If you have the product key configured correctly in the OCT, but you have it incorrectly configured in the config.xml, the config.xml will win and your install will fail.

 3.    The config.xml can be used alongside the custom msp. In fact in some cases it should be. There are some settings that can be set in the config.xml that are required to be set there, or in some cases just work better there than they do in the custom.msp. I will go over that later.

 4.    Do not modify ANY RTM files in the Office 2007 source except the config.xml, and of course replacing the admin folder with an updated version. The other xmls (like setup.xml) are signed and if they are modified your install will fail.

 5.    Any .msp files that you place in the updates folder will run automatically during the initial install if they are applicable to the install.

 6.   Are you using VL media? You will not have the ability to customize the installation with the OCT with RTM media.

Let’s look at our default installation source. I have copied this source from my Office 2007 Volume License ProPlus media into a local folder on my machine.


original source 

    You can tell just by looking at the source that this is Volume License “corporate” media. There are two immediate ways to tell. First, VL media will have an “admin” folder in the root. The second way to tell is by the name of the XXX.WW folder. In my case I am using ProPlus, so I have a ProPlus.WW folder. If I had Office 2007 Enterprise I would have an Enterprise.WW folder. If this was retail media (non-VL) my WW folder would be named ProPlusr.ww. For retail Enterprise media the folder would be named Enterpriser.ww.

    This walk through is intended for those of you installing with Volume License media because we are going to customize our installation with the OCT. The OCT is not available in retail media, and if you did create a custom.msp and you tried to run it with retail media it would fail. From my previous section on updating the admin folder you may have deduced that the admin folder is the OCT tool. For retail media… no admin folder, no OCT.

    You can tell by looking at my source that this is the English version of Office 2007. It is important to note however, that Office 2007 is in fact language neutral. That is why the WW folder doesn’t contain a language identifier in the folder name. If I were to remove all of the .en-us folders, and replace them with ja-jp folders I would then have a Japanese version of Office 2007. Or… if I were to add ja-jp folders to my source I would then have an Office 2007 source that had the capability of installing Office 2007 in Japanese, or in English, or it could be configured to install both languages. Here is a screenshot of Office 2007 Enterprise media with the capability of installing either Office 2007 in Japanese, or English, or both.

 

 two lang

 

The way that you determine what language to install, or if you want to install both is by modifying the config.xml. I won’t go into that in this walkthrough, but here is an article that describes the process.

Customize and deploy multiple language versions of the 2007 Office system
http://technet.microsoft.com/en-us/library/dd162397.aspx

     Let’s start our customization extravaganza by including Service pack 2 with our installation source. In previous versions of Office you might have heard the term slipstream. The idea of slipstreaming a patch into a product typically involves having the patch overwrite the files in the source which it would supersede.  A good example of this is when you buy a Windows XP disc that has Sp2 or Sp3 built into it. You don’t have to install windows RTM, and then apply the service pack, the service pack is just built in. In previous versions of Office it was possible to “slipstream” service packs. With Office 2007 there is a new update mechanism. The “Updates” folder. Updates that we place into the updates folder will apply during the installation of Office if they are applicable. With Office 2007 however, this isn’t technically “slipstreaming”. Since we are simply placing the updates in the updates folder and not replacing RTM files with service pack files it isn’t what someone would traditionally call slipstreaming.

Anyway, enough of the history/”geek speak” lesson.

Before we download Service pack 2, I’m going to quickly review the many flavors of Office Service pack 2.  

List of all 2007 Office system Service Pack 2 and Windows SharePoint Services 3.0 Service Pack 2 packages
http://support.microsoft.com/kb/968170/

First we have Office 2007 Suite service pack 2.
This service pack will be applicable to any Office 2007 suite, and all Office 2007 standalone products that could be included in a 2007 suite.
http://www.microsoft.com/downloads/details.aspx?FamilyId=B444BF18-79EA-46C6-8A81-9DB49B4AB6E5&displaylang=en

There are a couple of exceptions in the Office 2007 family. These standalone products require their own service packs.

Visio 2007 Sp2
http://www.microsoft.com/downloads/details.aspx?FamilyId=78E36742-8BDA-471E-88E6-9B561BB06258&displaylang=en
Project 2007 Sp2
http://www.microsoft.com/downloads/details.aspx?FamilyId=C126FA4A-B43F-4F7E-A9D4-522E92A6CFEE&displaylang=en
Sharepoint Designer 2007 Sp2
http://www.microsoft.com/downloads/details.aspx?FamilyId=88EFF285-0B92-45ED-979B-65AA22304DD6&displaylang=en

Next we have language pack service packs. Since Office 2007 is language neutral we also have service packs for the individual language packs. You don’t always need to install them additionally however. The primary language of the Office Suite SP2 download will include a service pack update for that same language. So if you install the English version of the Office 2007 Suite SP2, it will include a SP2 patch for the English language pack. If you bought Office in the US at a best buy for example, you are good with just the Office 2007 suite SP. But let’s suggest for a moment that you bought a copy of Office 2007 in France, and you brought it back home to the US and added an English language pack. Well now you will need to install the French Office 2007 Suite Sp2 patch, and the English language Sp2 patch to be fully patched.

The Office 2007 language pack Sp2 patches can be downloaded here:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E1203DB2-1CC9-4809-9B6E-3F232CB8899F&displaylang=en

It should also be mentioned that new to Sp2 is the ability to uninstall. With all previous service packs for Office this was not possible, but with Sp2 we introduced the “Microsoft Service Pack Uninstall Tool”.  (Oarpman.exe)

There is a blog discussing the functionality of the uninstall tool here.

So let’s begin customizing our Office 2007 source.

1.  First we are going to ensure that Sp2 gets installed along with Office 2007 during its initial installation.

Download Service Pack 2 for the Office 2007 suite.
http://www.microsoft.com/downloads/details.aspx?FamilyId=B444BF18-79EA-46C6-8A81-9DB49B4AB6E5&displaylang=en

Save the download to a local location on your machine. I have saved the SP2 download in a folder named c:\sp2 for this walkthrough.

Sp2

In order to ensure that SP2 installs during the initial installation of Office we will need to extract individual Sp2 updates from the executable to be placed in the “updates” folder. Remember that only .msp files will apply automatically during an Office installation.

To extract the individual updates from Sp2 I will run the /extract command from a command prompt. Now we could just use /extract and we will be prompted for the location to save the files to. To save myself one step I am going to specify the location by using /extract:c:\Sp2 like so:

extract 

After agreeing to the licensing we see the following screen:

extracting

Now when we investigate the c:\Sp2 folder we will see the following files:

files

I am going to copy the MSP files directly into the updates folder of my Office 2007 installation source. The office2007sp2-kb953195-fullfile-en-us.exe, and eula.txt files can be deleted because they are not needed going forward.

That’s it. As long as these 8 MSP files have been placed in the updates folder they will automatically apply to the Office 2007 installation as it is occurring. These same steps can be followed for any Office 2007 update. Not just service packs.

2.    Now that we have ensured that Office will be updated with the latest service pack during it’s installation, lets configure the installation to our liking. There are two built in ways to configure an Office 2007 installation.

  • Config.xml
  • Office Customization Tool

Before we start playing with these two customization options it is important to remember that the config.xml will take precedence over the settings in the Office Customization Tool (OCT) if they have conflicting settings.

The config.xml has many options that can be configured, and rather then trying to squeeze all that information into this walkthrough, I would recommend that you view this blog entry for a full breakdown of the options that can be configured in the config.xml.

To keep this walkthrough simple, I am only going to configure the following items in the config.xml in this example:

  • Display level = none
  • Silent installation (no GUI)
  • Verbose logging enabled
  • Product Key
  • Prevent reboot after installation
  • Disable completion notice
  • Suppress modal
  • accept eula

Since I am configuring the installation source for ProPlus, I am going to edit the config.xml from the ProPlus.ww folder. Here is what the default config.xml looks like:

<Configuration Product="ProPlus">

    <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> -->
    <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> -->
    <!-- <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" /> –> 
    <!-- <USERNAME Value="Customer" /> -->
    <!-- <COMPANYNAME Value="MyCompany" /> -->
    <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->
    <!-- <LIS CACHEACTION="CacheOnly" /> -->
    <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->
    <!-- <DistributionPoint Location="\\server\share\Office12" /> -->
    <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->
    <!-- <Setting Id="Reboot" Value="IfNeeded" /> -->
    <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

After I configure the options that I listed above in my bullet points my new config.xml will look like this:

<Configuration Product="ProPlus">

    <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> 
    <Logging Type="verbose" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" />  
    <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" />
    <!-- <USERNAME Value="Customer" /> -->
    <!-- <COMPANYNAME Value="MyCompany" /> -->
    <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->
    <!-- <LIS CACHEACTION="CacheOnly" /> -->
    <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->
    <!-- <DistributionPoint Location="\\server\share\Office12" /> -->
    <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->
    <Setting Id="SETUP_REBOOT" Value="NEVER" /> 
    <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

*Note* I have removed the leading <!-- and proceeding --> on the options that I am trying to set because they act as comment lines. These must be removed to make the lines active.

I left the other lines in the config.xml that are commented out, but I could technically remove them so my config.xml looks like this:

<Configuration Product="ProPlus">

    <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> 
    <Logging Type="verbose" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> 
    <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" />
    <Setting Id="SETUP_REBOOT" Value="NEVER" /> 

</Configuration>

Personally I like to leave the commented lines in however, because it reminds me in the future what other options are available to set in the config.xml.

3.    Now let’s configure the installation with the Office customization tool. It should be noted that the OCT is a better method of configuring an Office installation. There are many more options available. There are just a couple of examples where using the config.xml is a better option than using the OCT. One example is when chaining additional components. If for example you wanted to chain the getting started tabs, I would not recommend that you use the “run additional programs” section of the OCT. The config.xml handles chaining much better. If you were going to chain anything here is a blog post that discusses how the config.xml can be used to chain additional installations during the installation of Office 2007.

There are hundreds of configuration options available via the Office customization tool. Just like with the config.xml above I won’t go over all the settings that are available here in this post. I would recommend that you view this blog entry for a full breakdown of the options that can be configured in the Office customization tool.

For the purposes of this walkthrough we will set the following items in the OCT:

  • Organization Name
  • Set InfoPath to “Not Available”
  • Set Access 2007 to “Installed on first use”
  • Disable Customer Experience Improvement program
  • Disable Opt-in Wizard on first run
  • Enable Automatically receive small updates to improve reliability
  • Disable the prompt to download Microsoft Search 4.0 on Windows Xp machines
  • Disable RSS feeds in Outlook
  • Auto configure the Outlook 2007 Profile
  • Enable Cached exchange mode in Outlook 

To launch the OCT use the following command:

setup.exe /admin

Here is how mine looks:

cmd 
*Remember that this is only available with a volume license version of the Office 2007 media.*

The Office customization tool will open to a screen asking you whether you want to create a new customization file, or if you want to open an existing Setup customization file.

Select Product

Click OK to create a new customization file. The first screen we will modify will be the “Install location and organization name”. I am going to leave the “default installation path” set to default but I will add Microsoft as the “Organization name”.

Orgname

Next we will set the feature installation state for Infopath to Not Available, and Access to Installed on first use.

InstallationStates

For the next few configuration changes we will click on “Modify user settings” on the left.

usersettings

There are hundreds of individual customization settings that can be made here. I want to keep this walkthrough relatively simple so we will only be touching a couple settings, but one thing to reiterate is that while this section looks daunting it becomes much easier if you remember to reference the Office2007GroupPolicyAndOCTSettings.xls spreadsheet to locate specific settings. This will make locating items in the “modify user settings” section much easier. As an example, lets use the Office2007GroupPolicyAndOCTSettings.xls spreadsheet to help locate the “Disable Customer Experience Improvement program” setting in the “Modify user settings” section.

Open the spreadsheet and make sure we are looking at the “OPA Settings” tab at the bottom.
*The ADMX, ADML, and ADM Settings” tab is for configurations in the GPO ADM files.*

  • I’m going to search the spreadsheet for “Customer Improvement”. My search brings me to the following line in the spreadsheet.

    spreadsheet

    There are a couple points of interest now that our search has located the setting we are looking for. 

    - Notice in columns O, P, and Q the spreadsheet is listing what registry key gets set when we modify this setting in the OCT.
    It states that when I modify the “Enable Customer Experience Improvement Program” setting the following key is set:

    Associated Registry Key = Software\Microsoft\Office\12.0\Common
    Registry Value Name = QMEnable
    Registry Values = 1 | 0 
    *For the “Associated Registry Key” it will be using the HKCU hive*

    So in summary we could set this reg key below, and it would perform the same function as setting it in the OCT.

    [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common]
    "QMEnable"=dword:00000000

    - The next thing to point out from our spreadsheet is that we can see the breakdown of where we would find this setting in the OCT. In the screenshot above you can see the following hierarchy:

    CURRENT USER/Microsoft Office 2007 system/Privacy/Trust Center

    Going back to our OCT, let’s follow that structure to find the customer improvement setting in the “Modify user settings” section.

    custimprovement

    So as you can see in the OCT when we expand, Microsoft Office 2007 system/Privacy/Trust Center we find the customer improvement option. Using the Office2007GroupPolicyAndOCTSettings.xls spreadsheet sure makes locating individual settings a lot easier then if we attempted to hunt and peck through “Modify user settings”.

    Here we have set the Opt-in Wizard to disabled, the Customer Experience Improvement Program to disabled, and we enabled the “Automatically receive small updates” option.

    Let’s set the the last two settings we will be configuring in the “Modify user settings” section.

    rss

    search

    Now let’s automate the creation of the Outlook profile. We will do this in the “Outlook profile” section of the OCT. First we will choose “Modify Profile”. This is typically the best option as it will create the profile using the settings you specify, but if a profile already exists, Outlook will simply use the existing settings rather than the settings we will specify in the OCT.

    outlook1

    After specifying that we want Outlook to “Modify Profile”, we will need to specify exchange settings that will be used to create a new Outlook profile if there isn’t already a previous Outlook profile on the box that will be used. We will set the exchange options in the “Specify Exchange Server settings” section.

    outlook2

    Notice for the “User Name” we are using %UserName%. This will enable Outlook to automatically use your domain username to log onto the specified Exchange Server.

    Also on this page we are able to specify the cached exchange mode settings.

    So now that we have made the configuration settings we will go to file/save, and save the OCT customization as an MSP file. I have saved mine as Custom.msp. I will add custom.msp to the updates folder of my Office 2007 installation source. Now the custom.msp that was just created and the MSP files from Sp2 are in the updates folder.

    updates

    We are ready to install Office 2007 ProPlus with our customizations. You may have noticed that we didn’t input a product key in the OCT. We did put it in the config.xml however, so for this walkthrough we will be using both the config.xml and the custom.msp we created with the OCT.

    If we were going to use only a config.xml for the customization we would use this command line for the Office installation:

    setup.exe /config \\server\share\config.xml

    If we were going to use only a custom.msp for the customization we have two options. Either we could use the following command line:

    setup.exe /adminfile \\server\share\custom.msp

    Or we could simply place our custom.msp in the updates folder. Remember that any MSP files that are applicable to the installation will apply during the install. That includes our customization MSP that we created.

    It is also possible to call both the config.xml and the custom.msp via the command line at the same time. Here is an example of how that would look.

    setup.exe /config \\server\share\config.xml /adminfile \\server\share\custom.msp

    Since we have placed our custom.msp in the updates folder however (so it will apply automatically), all that is needed is the setup command that calls the config.xml.

    install


    After the installation is complete upon my initial launch of Office I find that my customizations have been applied as expected.

  • How to uninstall Office 2007 SP2 using the 2007 Office SP Uninstall Tool

    SP2 for Office 2007 is the first service pack for Office client that can be uninstalled. We have a great technical reference available on the Office 2007 Resource Kit (ORK) website that covers SP2 uninstall in detail here: http://technet.microsoft.com/en-us/library/dd723551.aspx

    This blurb from the ORK article above is worth mentioning here before we start the uninstall steps:

    “The uninstall tool allows the removal of a service pack release, which is a collection of patches. In this case, the release is 2007 Office system SP2. The uninstall tool removes all patches in a given release. It does not uninstall per patch or per product. For example, if you have Microsoft Office Visio 2007 Service Pack 2, Microsoft Office SharePoint Designer Service Pack 2, and Microsoft Office Professional 2007 Service Pack 2 installed on a computer, the tool uninstalls all these patches at the same time because they are part of the same release. Because of the complexity of shared files and shared Windows Installer packages (MSI files), there is no support currently for uninstalling per-product service packs.”

    I’m going to walk through the minimal steps required to uninstall Office 2007 SP2 using the 2007 Office SP Uninstall Tool, or oarpman for short. Oarpman does additional reporting and logging that I will not cover here, but is covered in detail on the ORK site.

    1. Download 2007 Office SP Uninstall Tool from this link: http://www.microsoft.com/downloads/details.aspx?FamilyId=b97e6ecf-8da5-455d-b3bb-8ff2223f97c4&displaylang=en
    2. Double-click office2007spuninstall.exe. Accept the terms and click Continue.  
    3. Make a new folder called oarpman at the root of C and click OK.

      image
    4. Open up an administrative command prompt.
      • Windows XP/Server 2003 – Click Start > Run. Type “cmd” and press Enter.
      • Vista/Server 2008/Win7 – Click Start > All Programs > Accessories. Right-click Command Prompt and click “Run as Administrator”

        image
    5. OARPMAN needs a release name to start the uninstall. To get it, type the following in your command prompt window: c:\oarpman\oarpman.exe /report and press Enter.

       image
    6. To start the uninstall of SP2 type the following in your command prompt window: c:\oarpman\oarpman.exe /remove O12SP2 and press Enter. This process may take some time to complete.

      image 

    That’s it. SP2 is uninstalled, and Office 2007 is reverted back to a patch state prior to SP2 being installed.

    2007 Office system (SP2) Administrative Template files (ADM, ADMX, ADML) and Office Customization Tool are available for download.

    If your planning on deploying SP2 for Office 2007 don’t forget to update the Office Customization Tool (OCT) and use the latest group policy files. These can both be downloaded as a single package from this link: http://www.microsoft.com/downloads/details.aspx?FamilyId=73d955c0-da87-4bc2-bbf6-260e700519a8&displaylang=en

     

    One you have AdminTemplates.exe downloaded follow these steps to update the OCT.

    1. Double-click AdminTemplates.exe and accept the EULA. Click Continue.

    image

    2. Pick a location to extract all files when prompted and click OK. (make a new folder to extract everything in)

    image

    3. You should have a folder with contents that looks like this:

    image

    4. Replace the \Admin folder in your 2007 Office system installation files or installation image with the downloaded Admin folder.

    That’s it. Now when you run “setup.exe /admin” from your installation source to launch the OCT you will be using the new version.

    It’s also worth mentioning that all of the group policy files to manage Office 2007 settings are contained in the ADM and ADMX folders. Office2007GroupPolicyAndOCTSettings.xls contains details on all of these settings and what options are available.

    More information about this update and what has changed is available on the Office System TechCenter: http://go.microsoft.com/fwlink/?LinkId=149867

    Office 2007 Service Pack 2 Available Today

    SP2 released to web for download today. We have a great KB article that contains links to all the downloads and description KB’s for each package. Check it out here: http://support.microsoft.com/kb/968170.

    SP2 contains a lot of great enhancements and fixes to Office 2007. Here are a few of them:

    • Support for Open Document Format (ODF)
    • Built in support for XPS and PDF (Add-in no longer required)
    • Improved performance and responsiveness in Outlook
    • SP2 can be uninstalled

    The last bullet will be the topic of another post very soon. For the first time in Office history we can uninstall a service pack without having to remove and reinstall everything. This is done with a tool called “Microsoft Service Pack Uninstall Tool for the 2007 Microsoft Office suite”, or OARPMAN for short. More on this soon!

    How to deploy specific fonts in Office 2007. This applies to Word Outlook Excel Powerpoint and Access.

    If you are looking to deploy these settings in the OCT, here is how to accomplish that.

    Attached is a .zip file with a sample Blank.potx (For PPT), Normal.dotm (For Word), and a reg file with the settings for Outlook, Excel, and Access.  These sample files change the font to arial for all the products. This attachment (fonts.zip) is at the bottom of this blog post.


     1. On the “add registry keys section” import the fonts.reg file.
    (This will set the default font to Arial for Excel, Access, and Outlook.)

    2. In the add files section of the OCT add Blank.potx and for the location choose “[AppDataFolder]\Microsoft\Templates”
    (This will set the default font to Arial for Powerpoint .)

    3. In the add files section of the OCT add default.dotm and for the location choose “[AppDataFolder]\Microsoft\Templates”
    (This will set the default font to Arial for Word.)

    4. I
    n the remove files section of the OCT click add and enter this path “[AppDataFolder]\Microsoft\Templates\default.dotm”  
    (This will remove a previous dotm if 2007 was previously installed)

    5. In the remove files section of the OCT click add and enter this path “[AppDataFolder]\Microsoft\Templates\Blank.potx”    
    (This will remove a previous blank.potx if 2007 was previously installed)


    Here are the details behind how each application handles the default fonts. I followed these instructions to obtain the reg keys, and templates for the individual apps in the sample files that are attached.

    Changing Default Font for Access 2007:

    To change the default font as Arial for Access, use this registry key:

    HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Settings
    Name: “Default Font Name”
    Type: “REG_SZ”
    Value: “Arial”

    Changing Default Font for Excel 2007:
    To change the default font as Arial for Excel, use this registry key:

    HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
    Name: “Font
    Type: “REG_SZ”
    Value: “<Font Name>,<Font size> ie “Arial,11”
    Here, the font size is also set within the same key.
    Changing Default Font for Word 2007:

    In order to change the default Font for Word 2007, we have to create a
    ‘Normal.dotm’ file for the user. Please follow the steps below to create and save a
    new normal.dotm file and see if that will meet you requirements.
    1. Open up Word 2007; On the Styles quick access bar, right click the Normal style
    and select "Modify"
    2. In the "Modify Style" window, select the "New documents based on this template"
    radio button.
    3. Click on the Format button and arrow down; select Font
    4. Set the font as Arial and click OK
    5. Click on the Format button and arrow down; select Paragraph…
    6. Change the line spacing as Single and click OK twice
    7. At this point, the Normal.dotm has been changed in the
    %Appdata%\Microsoft\Templates, so we should be able to add it to the OCT tool for
    deployment.

    For your testing, attached a sample Normal.dotm file based on your requirement.

    Changing the Default Font for PowerPoint:

    In order to change the default font for PowerPoint 2007, we have to create a base
    template and save it in default templates folder. Please follow the steps mentioned
    below to create and save a base template and see if that will meet your
    requirements.

    1. Start PowerPoint 2007.
    2. Select View tab ; then select Slide Master
    3. On the Slide Master (Slide Master: the slide that stores information about the
    design template applied, including font styles, placeholder sizes and positions,
    background design, and color schemes.), make the changes that you want to be
    reflected in every new presentation. You have to make the changes to each slide of
    the slide master.
    4. Then click Close Master View.
    5. Click Office Button and then click Save As > Other formats
    6. Pick PowerPoint Template from the Save As Type list box
    7. Save the template as Blank.potx. PowerPoint will automatically chooses the
    folder as %Appdata%\Microsoft\Templates, so accept the default location. The
    default location would be <Drive>\Documents and Settings\<User Profile>\Application
    Data\Microsoft\Templates.
    9. Close the file and start a new presentation to verify the font.
    For your testing, attached a sample Blank.potx file based on your requirement.

    Changing Default Font for Outlook 2007:

    The Font information for Outlook is held within the registry. However, this is a
    little more complex to get than the previous applications. The registry information
    that holds the Font information for Outlook is in binary format. Also, Outlook has
    3 main Font settings, each with a complex and simple setting. I have detailed the
    registry keys below:

    HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\MailSettings

    Name: "ComposeFontComplex"
    Type: “Hex”
    Value: value is in Binary format

    Name: “ComposeFontSimple”
    Type: “Hex”
    Value: value is in Binary format

    Name: “ReplyFontComplex”
    Type: Hex”
    Value: value is in Binary format

    Name: “ReplyFontSimple”
    Type: “Hex”
    Value: value is in Binary format

    Name: “TextFontComplex”
    Type: “Hex”
    Value: value is in Binary format

    Name: “TextFontSimple”
    Type: “Hex”
    Value: value is in Binary format

    I have attached a text file (outlook.txt) which contains the Outlook binary
    information for the default Font for each group. I have set this to Arial. Change
    the file extension on the file to .reg. By double clicking on the registry file, it
    will enter the information into the registry thus changing the default Font to
    Arial.

    I did the following to create the registry file to set the default Font to Arial in
    Outlook 2007:

    - Launch Outlook
    - Select “Options” from the “Tools” menu
    - Select the “Mail Format” tab
    - Select the “Stationary and Fonts” button
    - Change the Font setting to Arial for each of these options: New Mail Messages,
    Replying and forwarding messages, Composing and reading plain text messages

    Then exporting the Outlook Default Font registry information using these steps:

    - Select the “Start” Button, select “Run” and type “Regedit”
    - Browse to the following key -
    “HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\MailSettings”
    - Right click on the key and select “Export”
    - Export the file to desktop
    - Browse to Reg file on the desktop
    - Right click on the Reg file and select “Edit”
    - In Notepad remove any additional keys which are not needed and save the .reg file

    Unable to activate Office 2007 over the Phone. "Installation ID invalid"

    Issue:
    Unable to activate over the internet. "Product has been activated too many times"
    Attempting to activate over the phone then also fails with "Installation ID is invalid"

    Resolution:

    -Step 1

    Goto start, and then search or run.

    If using Vista, Windows 2008, or Windows7
    Type in %allusersprofile%\Microsoft\OFFICE\DATA

    If using Windows XP, Windows 2003, or Windows 2000
    Type in %allusersprofile%\application data\Microsoft\OFFICE\DATA

    Hit enter. You will see the following files below.

    Capture

    (Note: If you are having this issue in Office 2003 the files will be OPA11.BAK, and OPA11.DAT)

    Delete the OPA12.DAT (or OPA11.DAT if 2003) file. Then re-open an office app and attempt activation over the phone again.

    This is documented in step 3 of KB919895

    How to troubleshoot problems that you may experience when you try to activate a 2007 Office product
    http://support.microsoft.com/kb/919895


    -Step 2 (Step 2 is not always required, but sometimes is)

    Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:

    322756 How to back up and restore the registry in Windows

    Delete the registration key in the registry for the product you are having issues activating.

    (Note: If you are having this issues in Office 2003 the registration key will be in 11.0. If 2007 the registration key will be in 12.0)

    For this example let’s say we are having this issue with Office 2007 Enterprise.

    Open the registry by Clicking on start, goto run (or start search if using Vista), type regedit and hit enter.

    Browse to HKLM\software\microsoft\office\12.0\Registration\{Guid}

    You may have more than one {guid} listed under the registration key. Look at the “ProductName” key on the right side to determine which guid is for the problem product. In my example we can see that the ProductName is “Microsoft Office Enterprise 2007”. So we will delete the {90120000-0030-0000-0000-00000FF1CE} Guid on the left.

    Untitled

    Re-launch an Office app. Like Word for example. It will prompt you to enter your product key. Enter your product key and then when you go to activate you will have a new installation ID and should be able to activate over the phone. If automated activation over the phone fails, make sure to speak to the live representative.

    How to deploy a customized normal.dotm with Office 2007

    This is only applicable if you are able to customize Office with the OCT.
    Retail copies of Office do not have the ability to use an OCT.

     



    Click on start, goto run.
    Type %appdata%\Microsoft\Templates, and hit enter.
    Right click on the normal.dotm and choose open. Make whatever changes you would like and save.

    In your OCT in the “add files” section add the normal.dotm that you just modified.
    For the destination path use “[AppDataFolder]\Microsoft\Templates


    Then in the “remove files” section add “[AppDataFolder]\Microsoft\Templates\normal.dotm


    This second step to remove the normal.dotm is required to make sure that your custom .dotm from the add files section will get laid down even if there is a previous normal.dotm from a previous installation of Word. If you don’t remove the previous one first, I have seen instances where setup won’t replace it.

    How to remove Office products when uninstall fails. Suite, Project, Frontpage, Visio, Onenote Publisher etc..

    This process will work with ANY Office 2003, Office XP, or Office 2000, product. (THIS SHOULD NOT BE USED WITH OFFICE 2007 PRODUCTS). For Office 2007 standalone products, KB928218 should be used. For Office 2007 suites there is now a “Microsoft Fix it” utility at KB971179 to help with the removal.


    In this example we will remove FrontPage 2003.

    1. Download and run the Windows Installer cleanup utility from here.
    http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe

    When you click on the above link you will be given the options to run or save. Choose Run.

    clip_image001

    2. The program will start to install. Click next through all the screens, and finish on the last screen.

    clip_image002

    3. After the application is installed, run it by clicking on the “Windows Install Clean up” icon in your start menu. It should be the last item on the list. Here is a screenshot of where that icon is on my machine.

    clip_image003

    4. When you run the program you will see a window similar to my example below. Scroll through the list and look for, and select, Microsoft Office Frontpage. (List is in alphabetical order)
    After selecting Frontpage from the list, click on “remove”.

    clip_image004

    5. Say OK to this prompt

    clip_image005

    When it is finished, Frontpage will no longer be on the list of products in the windows installer cleanup window. (The removal process is very quick.)
    Frontpage has now been removed. You can now proceed with reinstallation. You can also uninstall the windows installer cleanup utility from add/remove programs if you wish.

    Related Knowledgebase Articles:
    =====================
    KB290301

    Page view tracker