Category Archives: Office

Customizing Office 2010 Setup with OCT: Adding/Removing files

The Office 2010 Office Customization Tool (OCT) can add and remove files to/from a computer that is installing Office. These are the steps in the OCT where you can add and remove files:

image

image

Notice the text in the Add files step; Specify files to add to the user’s computer during installation. When you exit this tool, copies of the files are saved in the Setup customization file. Notice also the Location column; [AppDataFolder]Microsoft…

So in the example above the normal.dotm and Word.officeUI files will be added to the MSP (Windows Install Patch) file.

When you deploy Office to a computer the files are copied from the MSP file into the [INSTALLLOCATION]Microsoft OfficePatchFiles and renamed with GUIDs as their names:

image

Now, looking back at the Location column in the Add files step in the OCT we can see that the files in this example are to be copied into the [AppDataFolder]Microsoft… etc. A user’s AppData folder is stored in the %APPDATA% environment variable and it’s usually something like: c:Users%username%AppDataRoaming. But since all users who log on to the computer, not just the one installing Office, needs these files they are copied from the PatchFiles folder into the AppDataRoaming folder for each new user who starts one of the Office applications. This feature also works the same way when Office is installed by the SYSTEM account, and not a user; the files are copied from the MSP file into the PatchFiles folder and from there to the user’s AppData folder.

Office 2010 Professional Plus fails with unexpected restart on Windows XP

The Situation

Office 2010 Professional Plus (32-bit) deployed to Windows XP Professional Service Pack 3 (32-bit) clients with System Center Configuration Manager (SCCM) 2007 R2 (64-bit). Office 2010 configured with Office Customization Tool (OCT) according to Microsoft guidelines.

The Problem

Upon completion the installation would initiate a forced reboot without prompting the user or giving any warning. After the reboot the Office 2010 installation would continue, but since it already completed before the reboot, this would be interpreted as a modification, prompting the user to select Add/Remove components, change product key etc. This, however, was not visible to the user since the program was configured to run without user interaction in SCCM. The result was that the Configuration Client (CcmExec) would wait for setup.exe for the maximum allowed run time and then terminate setup.exe, logging the installation as a failure. The whole process looked like this in the SCCM Advertisement Status report:

Time Message State Name Message Name Message ID Record ID
10.11.2011 12:37 Accepted Program received 10002 1164453
10.11.2011 12:37 Waiting Waiting for content 10035 1164454
10.11.2011 12:54 Running Program started 10005 1164461
11.11.2011 08:24 Failed Program failed (unexpected restart) 10021 1165171
11.11.2011 08:29 Running Program started 10005 1165174
11.11.2011 13:28 Failed Program failed (run time exceeded) 10070 1165445

Screenshot from SCCM

At 11.11.2011 08:29 Office 2010 restarts the installation after the reboot, even though it actually succeeded before the reboot, and the reboot is just to complete the installation. This is interpreted as a modification to the existing install and setup.exe prompts the user for what modifications to make. The user cannot see this, however, because he cannot interact with the program. CcmExec lets setup.exe run until the max run time is reached and then terminates setup.exe (11.11.2011 13:28) logging the install as a failure.

The Office 2010 setup log, located in %systemroot%System32Temp indicates that the install is successful, but that a restart is needed.

The Solution

To work around this problem it is necessary to suppress the reboot. This is done by adding the following to the MSP file in OCT (or the equivalent to config.xml):

image

With this setting in the MSP file the installation of Office 2010 will not be “fooled” by its own restart and complete successfully. You will first receive a status of Program completed successfully (reboot pending), until you initiate a restart on your own. After this restart the status will change to Program completed with success. Office 2010 seems to be fully functional even without performing this restart immediately, but the advertisement status in SCCM will not change until you restart.

Notes

Reports from other who have experiences similar issues indicate that the forced restart only happens on Windows XP computers, not Windows 7. I have not tested this myself.

References

Microsoft Office Live Meeting 2007 error

While using the Office Live Meeting 2007 client and trying to upload a Microsoft Word document (.doc) I received this error:
You’ve attempted to upload a document, but the feature required to upload the document was not included in the installation of Live Meeting. You can share the document using application sharing or reinstall Live Meeting while running as an administrator. This functionality is not available on 64 bit operating systems.
Note: You can still upload PowerPoint presentations.
Live Meeting logs information to pwconsole-debug<##>.txt located in you temp folder. The explanation of this error was logged in this file:
FindNBPrinterName, Line 705, Err = Error = 800401f8
CDocConverter::GetMODIPrinterName, Line 195, Err = Failed to find MODI printer name!
ModiInstaller::AddPrinterDriverW, Line 387, Err = CopyFile failed! Src=C:Program Files (x86)Microsoft OfficeLive Meeting 8Consolelmdigraph8.dll Dest=C:Windowssystem32spoolDRIVERSx64lmdigraph8.dll, GetLastError=5
ModiInstaller::InstallPrintDriver, Line 199, Err = AddPrinterDriver failed!
ReinstallNBPrinter, Line 758, Err = Install of print driver failed!
PrintToModi::Convert, Line 307, Err = Print driver could not be installed!
The error code is 5 which means Access Denied. I tried startig Live Meeting as an Administrator, this produced the same error but now with different errors in the pwconsole-debug file. Live Meeting was now able to copy the driver files to the DRIVERS folder.
PrinterDevMode::Initialize, Line 187, Err = DocumentProperties size request failed! Error = 0
IsNBPrinter, Line 599, Err = PrinterDevMode failed to initialize!
FindNBPrinter, Line 667, Err = Error = 80004005
FindNBPrinter, Line 685, Err = Error = 80004005
FindNBPrinterName, Line 705, Err = Error = 80004005
CDocConverter::GetMODIPrinterName, Line 195, Err = Failed to find MODI printer name!
PrinterDevMode::Initialize, Line 187, Err = DocumentProperties size request failed! Error = 0
IsNBPrinter, Line 599, Err = PrinterDevMode failed to initialize!
FindNBPrinter, Line 667, Err = Error = 80004005
FindNBPrinter, Line 685, Err = Error = 80004005
ModiInstaller::AddPrinterDriverW, Line 413, Err = GetLastError() = 216
ModiInstaller::InstallPrintDriver, Line 199, Err = AddPrinterDriver failed!
ReinstallNBPrinter, Line 758, Err = Install of print driver failed!
PrintToModi::Convert, Line 307, Err = Print driver could not be installed!
When Live Meeting uloads content to a meeting it temporatily installs a local printer (Microsoft Office Live Meeting 2007 Document Writer) and prints the content on the printer to a file. LM then removes the printer and uploads the content by way of the file that was printed. The printer driver remains on the computer for future use.
I was able to bypass the access denied error, but there is no x64 version of this driver and so I could not upload any content except PowerPoint files, which behave diffrently apparently.
Note: I tried to resolve the 0x216 (534 dec) error from the laste pwconsole-debug file. The error translates to:
Arithmetic result exceeded 32 bits
I do not know if this means that the driver failed to match an x64 OS.

Outlook tip

Just discovered a new hotkey in Outlook that I previously did not know about. When typing names in the To field you are often presented with the drop down list of previously resolved addresses from the Outlook local cache. This cache is stored in a file usually called outlook.nk2 in you userprofile directory tree. But if you have not previously used the address and want Outlook to try to resolve it you can press CTRL+K. This is the same as pressing the Check Names button on the toolbar.