Hromadná instalace OpenOfice pomoci souboru odpovědí.


Tento dokument se zabývá postupem vzdálené instalace kancelářského balíku OpenOffice na pracovní stanice v síti.
Vychází z dokumentů společnosti SUN Microsystems popisující stejný problém u StarOffice - "matky OpenOffice".

StarOfficeTM 6.0 - Installation with Response Files
StarOfficeTM 6.0 - Administration Guide




Instalaci provedeme pomocí plánovače úloh - AT nebo pomocí utility SOON.

AT \\pocitac 100 "\\server\folder\oo_setup.cmd"
nebo
SOON \\pocitac 100 "\\server\folder\oo_setup.cmd"

Instalační skript obsahuje vlastni instlaci OO plus drobná vylepšení - viz. vysvětlivky v skriptu a dole.

---------------------- begin instalskript OO oo_setup.cmd --------------------
@echo off

rem pokud je jiz OO nainstalaovan, skript se ukonci
if exist "%programfiles%\ooffice\*" goto END

rem spusteni vlastni instalace pomoci souboru odpovedi - viz. nize
"\\server\store\open_office\1.0.3_cz\setup.exe" -r:"\\server\store\oo\respfile.txt"

rem nakopirovani defaultniho nastaveni OO do hotove instalace plus zalozni kopie nastaveni do "user_b"
xcopy /I /H /R /Y /E /C "\\server\store\oo\user_orig\*" "%ProgramFiles%\ooffice\user_b"
xcopy /I /H /R /Y /E /C "\\server\store\oo\user_orig\*" "%ProgramFiles%\ooffice\user"

rem nastaveni prav pro adresar "%programfiles%\ooffice\user" - musi byt prava RWX pro vsechny uzivatele
caclsx "%ProgramFiles%\ooffice\user"  /T /E /P Administrators:F Everyone:C System:F

rem responsefile instalaci neudela zastupce v nabidce start, nutno rucne, problemy s cestinou (dlouhe i)
chcp 1250 
xcopy /I /H /R /Y /C  "\\server\store\oo\icons\*" "%ALLUSERSPROFILE%\Nabídka Start\Programy"
xcopy /I /H /R /Y /C  "\\server\store\oo\icons\OpenOffice.org Calc.lnk*" "%ALLUSERSPROFILE%\Plocha"
xcopy /I /H /R /Y /C  "\\server\store\oo\icons\OpenOffice.org Writer.lnk*" "%ALLUSERSPROFILE%\Plocha"

rem std. instalace neasociuje soubory .rtf s OO - rucne dodano
reg add HKLM\SOFTWARE\Classes\.rtf /v ""  /d "soffice6.doc" /f

rem pokud na stanici je nainstalovan MS Office, vratim asociace k souborum .doc, .rtf, .ppt, .xls
if not exist "%CommonProgramFiles%\Microsoft Shared\Artgalry\ARTGALRY.EXE"  goto END
reg add HKLM\SOFTWARE\Classes\.doc /v ""  /d "Word.Document.8" /f
reg add HKLM\SOFTWARE\Classes\.rtf /v ""  /d "Word.Document.8" /f
reg add HKLM\SOFTWARE\Classes\.xls /v ""  /d "Excel.Sheet.8" /f
reg add HKLM\SOFTWARE\Classes\.ppt /v ""  /d "PowerPoint.Show" /f

:END
---------------------- end instalskript OO oo_setup.cmd --------------------
Vzorový responsefile.txt:
---------------------- begin respfile.txt --------------------
[Environment]

InstallationMode = INSTALL_NORMAL
InstallationType = STANDARD
DestinationPath = c:\progra~1\ooffice
StartProcedure = none
EndProcedure = none

[Module_Specify]

[Java]
JavaSupport= preinstalled_or_none

[Procedures]

[Windows_Desktop_Integration]

---------------------- end respfile.txt --------------------
respfile.txt používam pouze se základním nastavením - neprovadí se žádne skripty na počátku a konci instlace (setup probíhá na pozadí bez interakce s uživatelem)
bližší možnosti nastavení viz. přiložené PDF soubory(Installation with Response Files, Administration Guide)
instaluje se celý balík OO (cca. 120MB /OpenOffice1.0.3/) - sekce [Module_Specify] je prázdná, přehled dostupných modulů získáte příkazem "setup.exe -sdump", vytvoří soubor 'script.htm' se seznamem modulů
po instalaci přepíši nastavení OO - přepíši konfigurační soubory v adresáři "%programfiles%\ooffice\user"
automaticky se asociují soubory .xls, .doc, .ppt pro OO - sekce [Windows_Desktop_Integration] v respfile.txt může obsahovat příkazy pro zabránění asociace souborů:

Register4MsWord = NO
Register4MsExcel = NO
Register4MsPowerPoint = NO
RegisterAsDefaultHtmlEditor = NO

bohužel mi toto nefungovalo (parametr NO ani FALSE) - u stanic s MS Office vracím asociace zpět v instalačním skriptu, intalace MS Office mám všude std. - neřeším, zda na stanici jsou všechny balíky (Word, Excel, PowerPoint)

trochu jsem měl problémy se způsobem, jak si OO ukládá nastavení - std. do "%programfiles%\ooffice\user" - pro všechny uživatele, což mi nevyhovuje, coby veřejná knihovna máme 2 základní druhy uživatelů - zaměstnanci a čtenari
u čtenářů se při přihlášení nakopíruje std. nastavení
u zaměstnanců zůstává jejich vlastní nastavení
řeším pomocí doménového logon skriptu

každý uživatel, který spustí OO musí mít v adresáři "%APPDATA%" soubor sversion.ini, který obsahuje info o nainstalované verzi a cestě OO
řeším pomocí doménového logon skriptu

---------------------- begin logonskript --------------------
@echo off

if not exist "%ProgramFiles%\ooffice" goto ENDOO

rem pokud neni soubor sversion.ini v profilu uzivatele, OO pri spusteni nahlasi chybu instalace
if not exist "%APPDATA%\sversion.ini" copy /Y "\\server\store\oo\sversion.ini" "%APPDATA%\"

rem odstraneni problemu s predchozimi asociacemi na text602, tab602,... v uzivatelskem profilu
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xls /FORCE
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.doc /FORCE
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.rtf /FORCE
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ppt /FORCE



rem vymaze se obsah adresare s nastavenim OO, !!! pozor mazete vse a jeste rekurzivne - testujte existenci adresare !!!
if not exist "%ProgramFiles%\ooffice\user" mkdir "%ProgramFiles%\ooffice\user"
if not exist "%systemdrive%\Program Files\ooffice" goto ENDOO
%systemdrive%
cd "%systemdrive%\Program Files\ooffice\user"
dir /ad /b >adr.dat
for /f " tokens=1" %%a in (adr.dat) do rmdir /s /q %%a
del *.* /s /q /f

rem pokud je to ctenar, nakopiruje se std. nastaveni
if not exist "h:\system\user" xcopy /I /H /R /Y /E /C  "%ProgramFiles%\ooffice\user_b\*" "%ProgramFiles%\ooffice\user"

rem pokud se jedna o zamestnance, nakopiruje se jeho vlastni nastaveni OO z uzivatelova disku
if exist "h:\system\user" xcopy /I /H /R /Y /E /C  "h:\system\user\*" "%ProgramFiles%\ooffice\user"

rem drobne upravy ukladaci adresare pro spec. uzivatele 
IF "%USERNAME%"=="userxxx" xcopy "%ProgramFiles%\ooffice\user\config\registry\instance\org\openoffice\Office\Common_u.xml" "%ProgramFiles%\ooffice\user\config\registry\instance\org\openoffice\Office\Common.xml" /E /C /I /H /R /Y

:ENDOO
---------------------- end logonskript --------------------

---------------------- begin logoffskript --------------------
@echo off

rem zazalohovani uzivatelskeho nastaveni pro zamestnance
if exist "h:\system" xcopy /I /H /R /Y /E /C  "%ProgramFiles%\ooffice\user\*" "h:\system\user"
---------------------- end logoffskript --------------------


se zachovaním nastavení OO je trochu komplikovaná práce, zatím mé řešení funguje, uvidíme časem nevyskytnou-li se problémy

doporučuji do logonskriptu, popříp. přímo na stanice přidat "Rychlé spouštění OpenOffice"

logonskript:     if exist "%ProgramFiles%\ooffice\program\quickstart.exe" "%ProgramFiles%\ooffice\program\quickstart.exe"

výrazně urychlí otevírání dokumentů v OO


řešení je vytvořeno ma míru naší sítě (stanice Win2K CZ, hlásí se do domény LINUX/SAMBA, cestovní profily) - upravte si dle vlastních představ a podmínek




případné připomínky, nápady na vylepšení vítány




Vypracoval: Jiri Nechvatal