Автоматизация установки OpenOffice.org 3.3

Порой, по причинам, не зависящим от IT-специалистов, приходится устанавливать на компьютеры пользователей офисные пакеты, отличные от таковых производства фирмы Microsoft.

В этой статье мы рассмотрим способы развертывания пакета OpenOffice.org при помощи сценариев групповой политики.

Для начала скачиваем дистрибутив в сайта www.openoffice.org.

image

В следующих шагах нам нужно будет менять файлы дистрибутива, которые в данный момент находятся внутри .cab файла, поэтому мы извлечем их при помощи msiexec, запущенного с ключом /a и параметром openofficeorg33.msi

msiexec /a openofficeorg33.msi


image image

Приступим к настройке нашего дистрибутива. Для того, чтобы тип файла при сохранении документов любым пользователем по умолчанию был формата Office97/2000/2003, нам нужно изменить несколько настроек в файлах дистрибутива OpenOffice.

Writer

Настройка типа файла по умолчанию для OpenOffice.org Writer находится в файле Basis\Share\Registry\writer.xcd.

image

По сути это .xml файл, настройки которого после установки программы будут влиять на всех пользователей. С помощью какой-либо программы для редактирования текстовых файлов, например wordpad, нам нужно открыть его, найти раздел

<oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice">
<node oor:name="Office">
<node oor:name="Factories">
…
<node oor:name="com.sun.star.text.TextDocument" oor:op="replace">
<prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
com.sun.star.text.TextDocument

<prop oor:name="ooSetupFactoryCommandConfigRef">
WriterCommands

<prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
writer8

<prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true">
writer8_template

<prop oor:name="ooSetupFactoryDefaultFilter">
writer8

…

…


и поменять значение writer8 в разделе

<prop oor:name="ooSetupFactoryDefaultFilter">
writer8


на MS Word 97

<prop oor:name="ooSetupFactoryDefaultFilter">
MS Word 97


image

Calc

Настройки для Calc находятся в файле Basis\Share\Registry\calc.xcd

image

Здесь нам нужен раздел

<oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice">
<node oor:name="Office">
<node oor:name="Factories">
<node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace">
<prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
com.sun.star.sheet.SpreadsheetDocument

<prop oor:name="ooSetupFactoryCommandConfigRef">
CalcCommands

<prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
calc8

<prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true">
calc8_template

<prop oor:name="ooSetupFactoryDefaultFilter">
calc8

<prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true">
private:factory/scalc


находим значение calc8 в разделе

<prop oor:name="ooSetupFactoryDefaultFilter">
calc8


и меняем его на MS Excel 97

<prop oor:name="ooSetupFactoryDefaultFilter">
MS Excel 97


image

Impress

Настройки Impress находятся в файле Basis\Share\Registry\impress.xcd

image

Находим нужный нам раздел:

<oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice">
<node oor:name="Office">
<node oor:name="Factories">
<node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace">
<prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true">
com.sun.star.presentation.PresentationDocument

<prop oor:name="ooSetupFactoryCommandConfigRef">
DrawImpressCommands

<prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true">
impress8

<prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true">
impress8_template

<prop oor:name="ooSetupFactoryDefaultFilter">
impress8


Находим значение impress8 в разделе:

<prop oor:name="ooSetupFactoryDefaultFilter">
impress8


и меняем его на MS PowerPoint 97

<prop oor:name="ooSetupFactoryDefaultFilter">
MS PowerPoint 97


image

Теперь подготовим файл .cmd, с помощью которого мы будем производить автоматическую установку с нужными нам параметрами. При запуске программы Windows Installer с указанием файла .msi OpenOffice

msiexec.exe /i openofficeorg33.msi


мы получим сообщение с требованием запускать установку с использованием файла setup.exe. При запуске setup.exe программа установки проверяет, установлен ли компонент Microsoft Visual C++ 2008 Redistributable, устанавливает его в случае его отсутствия, и только после этого запускает непосредственно Windows Installer. Установить Microsoft Visual C++ 2008 Redistributable можно и самому, либо вручную, либо с помощью команды

vcredist_x86.exe /q


Чтобы запустить установку без использования setup.exe, в качестве одного из параметров msiexec мы должны указать SETUP_USED=1 т.е. начало команды установки будет выглядеть так

msiexec.exe /i openofficeorg33.msi /passive /SETUP_USED=1


image

Теперь нам нужно указать те параметры, которые мы хотим применить к установке. Устанавливать будем так:

Основные модули OpenOffice.org:

OpenOffice.org Writer
OpenOffice.org Calc
OpenOffice.org Impress

image

Дополнительные компоненты:

Словари
Английский
Русский
Фильтры графических объектов
Расширение проводника Windows

image image

Управлять набором устанавливаемых компонентов можно при помощи команд ADDLOCAL и REMOVE и соответствующих параметров. Мы можем указать ADDLOCAL=ALL и при помощи REMOVE указать те компоненты, устанавливать которые мы не собираемся. И наоборот, указав REMOVE=ALL, нужно будет перечислить устанавливаемые компоненты при помощи команды ADDLOCAL. Как указывается на сайте openoffice.org для предыдущих версий OpenOffice.org

«If ALL is not used, the core components have to be specified manually, as ADDLOCAL=gm_Root, gm_Prg, gm_r_Files_2, gm_r_Files_3, gm_r_Files_4, gm_r_Files_5, gm_r_Files_6, gm_r_Files_7, gm_r_Files_8, gm_r_Files_9, gm_r_Fonts_OOo_Hidden»

То есть, если вы решили в команде ADDLOCAL не использовать ALL, а перечислить все компоненты вручную, то вам необходимо будет указать корневые компоненты установки, которые для данной версии могут отличаться. В нашей установке мы будем использовать параметр ADDLOCAL=ALL. Здесь мы перечислим параметры командной строки, отвечающие за установку определенных компонентов.

Основные модули:
Writer — gm_p_Wrt, gm_p_Wrt_Bin
Calc — gm_p_Calc, gm_p_Calc_Bin, gm_p_Calc_Addins
Draw — gm_p_Draw, gm_p_Draw_Bin
Impress — gm_p_Impress, gm_p_Impress_Bin
Base — gm_p_Base, gm_p_Base_Bin
Math — gm_p_Math, gm_p_Math_Bin

Дополнительные компоненты — gm_Optional
Среда исполнения Java — gm_o_Java
Словари — gm_Dictionaries

Английский — gm_r_Extension_Dictionary_En
Немецкий (Германия) — gm_r_Extension_Dictionary_De_DE
Русский — gm_r_Extension_Dictionary_Ru

Фильтры графических объектов — gm_o_Grfflt
Средство тестирования — gm_o_Testtool
Примеры фильтров XSLT — gm_o_Xsltfiltersamples
Унаследованные фильтры — gm_o_Binfilter
Интеграция Python-UNO — gm_o_Pyuno
Проверка обновлений — gm_o_Onlineupdate
Фильтры для мобильных устройств — gm_o_Javafilter

Palm — gm_o_jf_Palm
AportisDoc — gm_o_jf_Palm_Aportisdoc
Pocket PC — gm_o_jf_Pocketpc
Pocket Word — gm_o_jf_Pocketpc_Pocket_Word
Pocket Excel — gm_o_jf_Pocketpc_Pocket_Excel

Элемент управления ActiveX — gm_o_Activexcontrol
Расширение проводника Windows — gm_o_Winexplorerext
Средство быстрого запуска — gm_o_Quickstart

Итак, продолжение команды установки будет выглядеть так:

ADDLOCAL=ALL REMOVE=gm_p_Draw,gm_p_Draw_Bin,gm_p_Base,gm_p_Base_Bin,gm_p_Math,
gm_p_Math_Bin,gm_o_Testtool,gm_o_Xsltfiltersamples,gm_o_Pyuno,gm_o_Javafilter,
gm_o_jf_Palm,gm_o_jf_Palm_Aportisdoc,gm_o_jf_Pocketpc,gm_o_jf_Pocketpc_Pocket_Word,
gm_o_jf_Pocketpc_Pocket_Excel,gm_o_Activexcontrol,gm_o_Quickstart,gm_o_Java,
gm_o_Binfilter,gm_r_Extension_Dictionary_De_DE,gm_o_Onlineupdate


Также, при установке можно указать несколько полезных параметров. Например, если вы хотите, чтобы программа установки ассоциировала типы фалов Microsoft Office c программами из пакета OpenOffice.org, в командной строке нужно указать

SELECT_WORD=1
SELECT_EXCEL=1
SELECT_POWERPOINT=1


Эти команды ассоциируют файлы для Microsoft Word, Excel и PowerPoint соответственно. Также единая есть команда для всех типов файлов Microsoft Office

REGISTER_ALL_MSO_TYPES=1


Еще при установке можно указать следующие параметры

CHECKFORPRODUCTUPDATES=1
CREATEDESKTOPLINK=1
REMOVEOLDPRODUCTS=1


CHECKFORPRODUCTUPDATES=1 указывает установщику выполнить проверку обновлений на сайте OpenOffice.org CREATEDESKTOPLINK=1 управляет созданием ярлыка на рабочем столе. Если вам не нужен ярлык пакета программ OpenOffice.org на рабочем столе, можно указать этот параметр со значением «0» REMOVEOLDPRODUCTS=1 деинсталлирует все предыдущие выпуски OpenOffice.org перед установкой текущей версии. Мы в нашей установке не будем проверять обновления на сайте и создавать ярлык на рабочем столе. В нашем случае полная команда установки будет выглядеть так:

msiexec SETUP_USED=1 /passive /i openofficeorg33.msi SELECT_WORD=1 SELECT_EXCEL=1
SELECT_POWERPOINT=1 CHECKFORPRODUCTUPDATES=0 CREATEDESKTOPLINK=0 REMOVEOLDPRODUCTS=1
ADDLOCAL=ALL REMOVE=gm_p_Draw,gm_p_Draw_Bin,gm_p_Base,gm_p_Base_Bin,gm_p_Math,
gm_p_Math_Bin,gm_o_Testtool,gm_o_Xsltfiltersamples,gm_o_Pyuno,gm_o_Javafilter,
gm_o_jf_Palm,gm_o_jf_Palm_Aportisdoc,gm_o_jf_Pocketpc,gm_o_jf_Pocketpc_Pocket_Word,
gm_o_jf_Pocketpc_Pocket_Excel,gm_o_Activexcontrol,gm_o_Quickstart,gm_o_Java,
gm_o_Binfilter,gm_r_Extension_Dictionary_De_DE,gm_o_Onlineupdate


image

Регистрация

При первом запуске программа предложит каждому пользователю пройти процедуру регистрации. Здесь мы рассмотрим способ отключения этой функции. Вы можете прочитать об этом на сайте OpenOffice.org

http://wiki.services.openoffice.org/wiki/Documentation/Administration_Guide/Deactivating_Registration_Wizard

Для отключения процедуры регистрации для всех пользователей нам нужно создать файл DisableFirstStartWzd.oxt, который по сути является zip-архивом, содержащим следующие файлы: Common.xcu, Settings.xcu, Setup.xcu, manifest.xml, причем файл manifest.xml должен находиться в подкаталоге META-INF. Каждый из этих файлов представляет собой xml-файл с определенными параметрами.

image

Файл DisableFirstStartWzd.oxt можно скачать с сайта openoffice.org, хотя там говорится, что поддержка этого файла для новых версий прекращена и предлагается создать этот файл вручную. Именно так мы и поступим. Начнем с файла

common.xcu.

Он должен содержать следующие данные:


<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="Help">
<node oor:name="Registration">
<prop oor:name="ReminderDate" oor:type="xs:string">
Patch9521



<node oor:name="Misc">
<prop oor:name="FirstRun" oor:type="xs:boolean">
false




Значение в части файла

<prop oor:name="ReminderDate" oor:type="xs:string">
Patch9521


должно отражать номер текущего билда. В данном примере номер билда равен «9521». Значение параметра должно быть в форме «Patchxxxx», что в данном случае являет собой «Patch9521». Номер билда пакета программ OpenOffice.org можно посмотреть в либо через меню «Справка/О программе» либо найти в содержимом файла program/version.ini строку ProductBuildID и посмотреть значение этого параметра.

image

settings.xcu

Файл должен содержать следующие строки


<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Settings" oor:package="org.openoffice.Office.OOoImprovement">
<node oor:name="Participation">
<prop oor:name="OfficeStartCounterdown" oor:type="xs:int">
0

<prop oor:name="ShowedInvitation" oor:type="xs:boolean">
true




image

setup.xcu

Его содержимое:


<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="ooSetupInstCompleted" oor:type="xs:boolean">
false

<prop oor:name="LicenseAcceptDate" oor:type="xs:string">
2010-12-30T08:14:11

<prop oor:name="FirstStartWizardCompleted" oor:type="xs:boolean">
true




Значение value в строках

<prop oor:name="LicenseAcceptDate" oor:type="xs:string">
2010-12-30T08:14:11


должно быть больше или равно дате инсталляции.

image

manifest.xml

Содержимое файлаmanifest.xml, находящегося в папке META-INF, должно быть следующим:


<manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
manifest:full-path="setup.xcu"/>
<manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
manifest:full-path="Common.xcu"/>
<manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
manifest:full-path="Settings.xcu"/>


image

Все эти файлы нужно заархивировать в формате zip и присвоить расширение .oxt В нашем примере файл будет называться DisableFirstStartWizard.oxt

image

Чтобы отключить запрос о регистрации, после установки OpenOffice.org нужно запустить программу unopkg.com add —shared из каталога program папки инсталляции пакета программ и указать в качестве параметра путь к созданному нами файлу. Полная команда будет выглядеть так:

unopkg.com add --shared DisableFirstStartWizard.oxt


image

Проверка орфографии

Так как в стандартном дистрибутиве OpenOffice.org отсутствуют компоненты проверки орфографии для русского языка, имеет смысл загрузить их с сайта http://www.openoffice.org и включить в наш установочный пакет. Средство проверки правописания представляет собой расширение для пакета программ OpenOffice.org и, так же как и в предыдущем сучае, может быть установлено при помощи утилиты unopkg.com. Команда, необходимая для установки данного расширения будет иметь следующий вид:

unopkg.com add --shared dict_ru_RU-0.6.oxt


где dict_ru_RU-0.6.oxt – это имя файла, содержащего средства проверки правописания для русского языка.

image

Для автоматизации установки можно создать несколько файлов сценариев.

redist.cmd

redist\vcredist_x86.exe /q


image

install.cmd

msiexec SETUP_USED=1 /passive /i openofficeorg33.msi SELECT_WORD=1 SELECT_EXCEL=1
SELECT_POWERPOINT=1CHECKFORPRODUCTUPDATES=0 CREATEDESKTOPLINK=0 REMOVEOLDPRODUCTS=1
ADDLOCAL=ALL REMOVE=gm_p_Draw,gm_p_Draw_Bin,gm_p_Base,gm_p_Base_Bin,gm_p_Math,
gm_p_Math_Bin,gm_o_Testtool,gm_o_Xsltfiltersamples,gm_o_Pyuno,gm_o_Javafilter,
gm_o_jf_Palm,gm_o_jf_Palm_Aportisdoc,gm_o_jf_Pocketpc,gm_o_jf_Pocketpc_Pocket_Word,
gm_o_jf_Pocketpc_Pocket_Excel,gm_o_Activexcontrol,gm_o_Quickstart,gm_o_Java,
gm_o_Binfilter,gm_r_Extension_Dictionary_De_DE,gm_o_Onlineupdate


"c:\Program Files\OpenOffice.org 3\program\unopkg.com" add --shared disablefirststartwizard.oxt


"c:\Program Files\OpenOffice.org 3\program\unopkg.com" add --shared dict_ru_RU-0.6.oxt


image

Для файлов openofficeorg33.msi и disablefirststartwizard.oxt нужно указать их точное местоположение. Для того, чтобы сценарий установки можно было указать в групповой политике, нужно создать проверочное условие на предмет установлен ли OpenOffice.org на данной системе или еще нет. При установке OpenOffice.org в реестре создается ряд ключей, проверяя наличие которых можно определить наличие установленного пакета программ при запуске сценария. Мы будем проверять наличие в системе ключа, создаваемого Windows Installer при установке OpenOffice.org 3.3

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\
Products297BBB886BC10B40B7FBCCF230284E8


Сценарий запуска приобретет следующий вид

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\
Products297BBB886BC10B40B7FBCCF230284E8 || cmd /c redist.cmd
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\
Products297BBB886BC10B40B7FBCCF230284E8 || || cmd /c install.cmd


image

Итак, произведя необходимые действия по настройке дистрибутива OpenOffice.org, а также создав несколько вспомогательных сценариев, мы подготовили пакет офисных программ к установке в сетевой среде. Теперь мы можем воспользоваться преимуществами установки через групповую политику, что в определенной степени облегчит нам развертывание пакета в сети, содержащей значительное число компьютеров.


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


3 ответ. на "Автоматизация установки OpenOffice.org 3.3"

  1. Максим 16 января, 2015 / 09:43

    Спасибо, очень полезная информация.

  2. Александр 21 августа, 2015 / 14:35

    Спасибо огромное. Очень полезная информация.

    • Александр 21 сентября, 2015 / 11:26

      Добавлю, мб пригодится кому нибудь. SETUP_USED=1 в win 7 не работает, обойти это можно открыв в каком либо msi редакторе (я использовал SuperOrca), наш msi пакет. Ищем в нем таблицу LaunchCondition в ней находим (VersionNT< 600) or (SETUP_USED=1) or Installed и полностью выпиливаем это значение. Сохраняем и продолжаем работу.

Оставьте комментарий