OpenOffice.org 2.x

This is a silent installer and uninstaller for OpenOffice.

Disabling the First Start Wizard

Setup.xcu Method

Create a user's OpenOffice profile directory (%APPDATA%\OpenOffice.org2\user\registry\data\org\openoffice) and copy the following file (Setup.xcu) there before they run OpenOffice. Then when they run OpenOffice they won't be prompted to complete the Start Wizard.

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Setup" oor:package="org.openoffice">
 <node oor:name="Office">
  <prop oor:name="LicenseAcceptDate" oor:type="xs:string">
   <value>2010-01-01T11:51:13</value>
  </prop>
  <prop oor:name="FirstStartWizardCompleted" oor:type="xs:boolean">
   <value>true</value>
  </prop>
 </node>
</oor:component-data>

DisableFirstStartWzd.oxt + Common.xcu Extension Method

First, download the OpenOffice.org installer (OOo_2.4.1_Win32Intel_install_en-US.exe) from OpenOffice.org Website. Make sure to uncheck "Include the Java JRE with this download" to download the package without the bundled JRE.
Run the installer - it creates a directory named OpenOffice.org 2.4 (en-US) Installation Files, which includes several files. The ones you need are:

openofficeorg24.msi
openoffice.org-activex.cab
openoffice.org-base.cab
openoffice.org-calc.cab
openoffice.org-core01.cab
openoffice.org-core02.cab
openoffice.org-core03.cab
openoffice.org-core04.cab
openoffice.org-core05.cab
openoffice.org-core06.cab
openoffice.org-core07.cab
openoffice.org-core08.cab
openoffice.org-core09.cab
openoffice.org-draw.cab
openoffice.org-emailmerge.cab
openoffice.org-graphicfilter.cab
openoffice.org-impress.cab
openoffice.org-javafilter.cab
openoffice.org-math.cab
openoffice.org-onlineupdate.cab
openoffice.org-pyuno.cab
openoffice.org-testtool.cab
openoffice.org-writer.cab
openoffice.org-xsltfilter.cab

Next, you need to download the DisableFirstStartWzd.oxt extension and place this in the same directory as the files above.

For some reason, using this extension alone won't work in OpenOffice 2.4.1 (untested in 2.4.0). The Wizard will still come up, although in a smaller version (skipping the first steps, going directly to the "Register now/Register later" dialog. Run OpenOffice once and go through the dialog, that way it will create a user profile in %APPDATA%. Then you will need to copy the file %APPDATA%OpenOffice.org2\user\registry\data\org\openoffice\Office\Common.xcu to the same directory as all the other files.


Installer Parameters

You can customize your installation by using the following supported installer parameters: http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Automatic_Installation_on_Windows


WPKG install

For security reasons you are strongly encouraged to upgrade to version 2.4.2: http://www.openoffice.org/security/cves/CVE-2008-2237.html, http://www.openoffice.org/security/cves/CVE-2008-2238.html.

The following installer is for English version, without bundled JRE, and associates as default application for Word, Excel and Powerpoint file extensions.

<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package id="openoffice2"
	name="OpenOffice.org 2.4.x"
	revision="20081103"
	reboot="false"
	priority="0">

	<check type="uninstall" condition="exists" path="OpenOffice.org 2.4" />
	<depends package-id="java6" />

	<install cmd='msiexec /qn /i "%SOFTWARE%\openoffice2\openofficeorg24.msi" ALLUSERS=1 SELECT_WORD=1 SELECT_EXCEL=1 SELECT_POWERPOINT=1' />
	<install cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" add --shared %SOFTWARE%\openoffice2\DisableFirstStartWzd.oxt' />
	<install cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" add --shared %SOFTWARE%\openoffice2\Common.xcu' />

	<upgrade cmd='msiexec /qn /i "%SOFTWARE%\openoffice2\openofficeorg24.msi" ALLUSERS=1 SELECT_WORD=1 SELECT_EXCEL=1 SELECT_POWERPOINT=1' />
	<upgrade cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" add --shared %SOFTWARE%\openoffice2\DisableFirstStartWzd.oxt' />
	<upgrade cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" add --shared %SOFTWARE%\openoffice2\Common.xcu' />

	<remove cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" remove --shared org.openoffice.legacy.DisableFirstStartWzd.oxt' />
	<remove cmd='"%ProgramFiles%\OpenOffice.org 2.4\program\unopkg.exe" remove --shared org.openoffice.legacy.Common.xcu' />
	<remove cmd='msiexec /qn /x {1AE79DA3-6C93-45C5-8318-E440C2A0A73A}' />
</package>
</packages>

Note If you install i.e. OOo 2.4.2 it also announces itself as OO 2.4 in the Software repository. To know if it got installed, replace

<check type="uninstall" condition="exists" path="OpenOffice.org 2.4" />

with

<check type="registry" condition="exists" path="HKLM\SOFTWARE\OpenOffice.org\OpenOffice.org\2.4\{1AE79DA3-6C93-45C5-8318-E440C2A0A73A}\INSTALLLOCATION" />

The long hexnumber is the Uninstall-ID (see below). This always works, also with minorversion updates.

The uninstall ID can be checked from the file setup.ini in the directory OpenOffice.org 2.4 (en-US) Installation Files

Question Does "uninstall ID" mean "{1AE79DA3-6C93-45C5-8318-E440C2A0A73A}" or "OpenOffice.org 2.0"?

Answer The long hex number.

Localized builds

The best way to install a localized build (in my opinion) is to install localized language packs in addition to the English installer. This way the user can choose if they want to have the English interface or the localized one. An example for the Traditional Chinese language pack:

<package id="ooo-2.4-langpack-zh"
  name="OpenOffice.org 2.4 language pack (zh)"
  revision="1"
  reboot="false"
  priority="0">
  <check type="registry" condition="exists" path="HKLM\SOFTWARE\Microsoft\Window
s\CurrentVersion\Uninstall\{B95154FE-365D-4867-B915-24EEEE6EFB27}\Version" />
  <install cmd='msiexec /qn /i "%SOFTWARE%\ooo-2.4-langpack-zh\openofficeorg24.msi" ALLUSERS=1' />
  <remove cmd='msiexec /qn /x{B95154FE-365D-4867-B915-24EEEE6EFB27}' />
</package>

Note that {B95154FE-365D-4867-B915-24EEEE6EFB27} is the product code as found in setup.ini.

To switch to that language, choose Tools | Options | Language Settings | Language and set the "language of User Interface".


Customizing

General

MSI Transform

According to the OpenOffice.org 2 setup guide, you can customize an automated installation using Microsoft's Orca tool.

MSI Installer Switches

Certain customizations are possible without Orca. For example, AppDeploy.com gives the tip for making OpenOffice.org the default program for Microsoft Office file types:

msiexec /qb! /i openofficeorg20.msi ALLUSERS=1 SELECT_WORD=1 SELECT_EXCEL=1 SELECT_POWERPOINT=1

See the new documentation Automatic Installation on Windows at the OpenOffice.org Wiki for a detailed documentation of all the MSI properties.

soffice.ini

You can edit options in %ProgramFiles%\OpenOffice.org 2.4\program\soffice.ini.

For example to disable the splash screen, place sed.exe and the dependencies (libiconv2.dll and libintl3.dll) from GnuWin32 into your tools folder. Then add the following lines to the bottom of each section:

<install cmd='%WPKGROOT%\tools\sed.exe -i s/^Logo=1$/Logo=0/ "%ProgramFiles%\OpenOffice.org 2.4\program\soffice.ini"' />
...
<upgrade cmd='%WPKGROOT%\tools\sed.exe -i s/^Logo=1$/Logo=0/ "%ProgramFiles%\OpenOffice.org 2.4\program\soffice.ini"' />

Common.xcu

Alternatively, create a user's OpenOffice profile directory (%APPDATA%\OpenOffice.org2\user\registry\data\org\openoffice) and copy the following file (Common.xcu) there before (or after) they run OpenOffice.

Example configuration which will warn when print for paper orientation and size; auto save every 10 minutes; not AutoCorrect URLs; set the graphics cache's memory per object to 5MB;

set the total graphics cache to use for OpenOffice to 33MB:
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Common" oor:package="org.openoffice.Office">
 <node oor:name="Misc">
  <prop oor:name="FirstRun" oor:type="xs:boolean">
   <value>false</value>
  </prop>
 </node>
 <node oor:name="Print">
  <node oor:name="Warning">
   <prop oor:name="PaperOrientation" oor:type="xs:boolean">
    <value>true</value>
   </prop>
   <prop oor:name="PaperSize" oor:type="xs:boolean">
    <value>true</value>
   </prop>
  </node>
 </node>
 <node oor:name="Save">
  <node oor:name="Document">
   <prop oor:name="AutoSave" oor:type="xs:boolean">
    <value>true</value>
   </prop>
   <prop oor:name="AutoSaveTimeIntervall" oor:type="xs:int">
    <value>10</value>
   </prop>
  </node>
 </node>
 <node oor:name="AutoCorrect">
  <prop oor:name="SetInetAttribute" oor:type="xs:boolean">
   <value>false</value>
  </prop>
 </node>
 <node oor:name="Cache">
  <node oor:name="GraphicManager">
   <prop oor:name="ObjectCacheSize" oor:type="xs:int">
    <value>5242880</value>
   </prop>
   <prop oor:name="TotalCacheSize" oor:type="xs:int">
    <value>33554432</value>
   </prop>
  </node>
 </node>
</oor:component-data>

Specific Customisations

TODO

Alternative install

Here's another possibility:

<package id="openoffice" name="Openoffice 2" revision="1" priority="0" reboot="false">
 <check type="uninstall" condition="exists" path="OpenOffice.org 2.0" />
 <!-- install cmd='%SOFTWARE%\OpenOffice\enu\setup.exe -r:\\server\share\OpenOffice\officeop.txt -D:\"%ProgramFiles%\OpenOffice.org\" -debug -net' -->
 <!-- make a temporary directory -->
 <install cmd='cmd /c mkdir "%TEMP%\ooo"' />
 <!-- Expand the zip file -->
 <install cmd='"%PROGRAMFILES%\7-Zip\7z.exe" e -y -o"%TEMP%"\ooo %SOFTWARE%\openoffice2\OOo_2.0_Win32Intel_install.zip"' />
 <install cmd='"%TEMP%\ooo\setup" /q' />
 <install cmd='cmd /c del /s /q "%TEMP%\ooo"' />
 <remove cmd="msiexec /qb /l* c:\netinst\logs\openoffice.log x{C3B3C054-0F00-4BC3-9A90-9C6B3EF4201F}" />
</package>

Open questions

1- Is there an easy way to associate .csv and .dbf files?

2- Is there an easy way to active the quickstarter? (In Version 2.1, it seems to be disabled by default?)

3- Is there a way to deactivate the registration wizard that appears for each user at first start ?

Partial answers

1- by modifying HKEY_CLASSES_ROOT in the registry

2- by dropping a link to it in the startup folder

3 - See the methods above

Other answers:

3- by copying a folder OpenOffice.org2 into the profile of the user at session start. The folder is a copy made from a user profile which user has done the registration. What is interesting in this solution is that it enables you to set automatically the preferences you want for any new user. This solution is the one used by most openOffice admin (see oooforum). Just cut and paste the snippet below and place it into your logon.bat.


rem ### ### ### ### ### ### ### ### ### ### ### ### ### 
rem
rem 	OPENOFFICE 2.2
rem
rem ### ### ### ### ### ### ### ### ### ### ### ### ### 


IF NOT EXIST "%PROGRAMFILES%\OpenOffice.org 2.2\program\soffice.exe" GOTO OOO2END
IF EXIST "%APPDATA%\OpenOffice.org2\" GOTO OOO2END
xcopy /v /s /i /e /h /c /y /q "\\server\netlogon\OpenOffice.org2" "%APPDATA%\OpenOffice.org2"
:OOO2END