Порой, по причинам, не зависящим от IT-специалистов, приходится устанавливать на компьютеры пользователей офисные пакеты, отличные от таковых производства фирмы Microsoft.
В этой статье мы рассмотрим способы развертывания пакета OpenOffice.org при помощи сценариев групповой политики.
Для начала скачиваем дистрибутив в сайта www.openoffice.org.
В следующих шагах нам нужно будет менять файлы дистрибутива, которые в данный момент находятся внутри .cab файла, поэтому мы извлечем их при помощи msiexec, запущенного с ключом /a и параметром openofficeorg33.msi
msiexec /a openofficeorg33.msi
Приступим к настройке нашего дистрибутива. Для того, чтобы тип файла при сохранении документов любым пользователем по умолчанию был формата Office97/2000/2003, нам нужно изменить несколько настроек в файлах дистрибутива OpenOffice.
Writer
Настройка типа файла по умолчанию для OpenOffice.org Writer находится в файле Basis\Share\Registry\writer.xcd.
По сути это .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
Calc
Настройки для Calc находятся в файле Basis\Share\Registry\calc.xcd
Здесь нам нужен раздел
<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
Impress
Настройки Impress находятся в файле Basis\Share\Registry\impress.xcd
Находим нужный нам раздел:
<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
Теперь подготовим файл .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
Теперь нам нужно указать те параметры, которые мы хотим применить к установке. Устанавливать будем так:
Основные модули OpenOffice.org:
OpenOffice.org Writer
OpenOffice.org Calc
OpenOffice.org Impress
Дополнительные компоненты:
Словари
Английский
Русский
Фильтры графических объектов
Расширение проводника Windows
Управлять набором устанавливаемых компонентов можно при помощи команд 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
Регистрация
При первом запуске программа предложит каждому пользователю пройти процедуру регистрации. Здесь мы рассмотрим способ отключения этой функции. Вы можете прочитать об этом на сайте OpenOffice.org
Для отключения процедуры регистрации для всех пользователей нам нужно создать файл DisableFirstStartWzd.oxt, который по сути является zip-архивом, содержащим следующие файлы: Common.xcu, Settings.xcu, Setup.xcu, manifest.xml, причем файл manifest.xml должен находиться в подкаталоге META-INF. Каждый из этих файлов представляет собой xml-файл с определенными параметрами.
Файл 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 и посмотреть значение этого параметра.
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
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
должно быть больше или равно дате инсталляции.
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"/>
Все эти файлы нужно заархивировать в формате zip и присвоить расширение .oxt В нашем примере файл будет называться DisableFirstStartWizard.oxt
Чтобы отключить запрос о регистрации, после установки OpenOffice.org нужно запустить программу unopkg.com add —shared из каталога program папки инсталляции пакета программ и указать в качестве параметра путь к созданному нами файлу. Полная команда будет выглядеть так:
unopkg.com add --shared DisableFirstStartWizard.oxt
Проверка орфографии
Так как в стандартном дистрибутиве 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 – это имя файла, содержащего средства проверки правописания для русского языка.
Для автоматизации установки можно создать несколько файлов сценариев.
redist.cmd
redist\vcredist_x86.exe /q
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
Для файлов 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
Итак, произведя необходимые действия по настройке дистрибутива OpenOffice.org, а также создав несколько вспомогательных сценариев, мы подготовили пакет офисных программ к установке в сетевой среде. Теперь мы можем воспользоваться преимуществами установки через групповую политику, что в определенной степени облегчит нам развертывание пакета в сети, содержащей значительное число компьютеров.
Страницы в социальных сетях:
Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell
Спасибо, очень полезная информация.
Спасибо огромное. Очень полезная информация.
Добавлю, мб пригодится кому нибудь. SETUP_USED=1 в win 7 не работает, обойти это можно открыв в каком либо msi редакторе (я использовал SuperOrca), наш msi пакет. Ищем в нем таблицу LaunchCondition в ней находим (VersionNT< 600) or (SETUP_USED=1) or Installed и полностью выпиливаем это значение. Сохраняем и продолжаем работу.