This is an old revision of the document!
Frei nach dieser Anleitung: http://wiki.welter-online.com/index.php/OPSI
Sehr minimal aber erstmal ein Einstieg. Mehr findet Infos man unter: https://wiki.mozilla.org/Deployment:Deploying_Firefox
Install.ins
[Initial] Message=installiere Firefox 7.0.1 DE StayOnTop=false [Aktionen] Winbatch_produkt_silent_install [Winbatch_produkt_silent_install] %SCRIPTPATH%\firefox-de-7.0.1.exe -ms
Uninstall.ins
[Initial] Message=deinstalliere Firefox StayOnTop=false [Aktionen] ; We need to wait for "Au_.exe" to finish. Hopefully 5 minutes are enough Winbatch_produkt_silent_uninstall /WaitForProcessEnding "Au_.exe" /TimeOutSeconds 300 [Winbatch_produkt_silent_uninstall] "%ProgramFilesDir%\Mozilla Firefox\uninstall\Helper.exe" /S
—
— Thomas_H 2011/10/27 09:24
Tested with opsi 4.0.1
requiredWinstVersion >= 4.10.8.6
Hier kommt eine erweitere Version, welche auch ein zuvor eingerichtetes Profil berücksichtigt.
This is an extended Version which also installs a defined profile.
tree:
/opsi-installs/firefox/CLIENT_DATA # ls -l insgesamt 13552 delsub.ins firefox.bmp firefox-profile (THIS is the directory with the copied profile!) Firefox Setup 6.0.exe setup.ins uninstall.ins
[Initial]
LogLevel=2
; Log Errors in Logfile but don't abort:
ExitOnError=false
Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false
[Aktionen]
DefVar $ProductId$
DefVar $InstallDir$
DefVar $NewExe$
DefVar $PRODUCTPATH$
DefStringList $profiles$
DefVar $akt_profile_ini$
DefVar $rel_prefs_path$
DefVar $akt_prefs_path$
DefVar $TEMP$
DefVar $OS$
DefVar $UninstallCommand$
DefVar $MozInstallDir$
DefVar $MozVersion$
DefVar $MozInstallPathRegKey$
DefVar $PROXY_HOSTNAME_OR_IP$
DefVar $PROXY_PORT$
DefVar $NOPROXY_HOSTS$
DefVar $PREF_FILE$
DefStringList $languageInfo$
DefVar $language$
DefVar $AppData$
DefVar $SilentSwitch$
DefVar $ExitCode$
DefVar $FIREFOXVER$
; ----------------------------------------------------------------------
Set $TEMP$ = EnvVar("TEMP")
Set $PRODUCTPATH$="%ProgramFilesDir%\Mozilla Firefox"
Set $MozInstallDir$ = $PRODUCTPATH$
set $InstallDir$=$PRODUCTPATH$
set $NewExe$= $PRODUCTPATH$+"\"
set $ProductId$ = "firefox"
set $OS$ = GetNTVersion
set $FIREFOXVER$ = "Firefox Setup 6.0.exe"
set $SilentSwitch$ = "-ms"
; ----------------------------------------------------------------------
; Haben wir genug Speicherplatz?
if not(HasMinimumSpace ("%SYSTEMDRIVE%", "30 MB"))
LogError "Nicht gengend Platz auf C: . 30 MB auf C: fuer Firefox erforderlich."
isFatalError
comment "Bearbeitung beenden und Produktschalter auf failed setzen"
else
comment "show product picture"
ShowBitmap /3 "%scriptpath%\firefox.bmp" "Firefox"
if FileExists("%ScriptPath%\delsub.ins")
comment "start delsub.ins"
sub "%ScriptPath%\delsub.ins"
endif
comment "Message at install time:"
Message "Installing Firefox..."
comment "kill a running firefox"
killtask "firefox.exe"
comment "check for depotshare"
if not (FileExists("%SCRIPTPATH%"))
DosInAnIcon_TryToReconnect
endif
comment "start setup program"
Files_copy_local
Winbatch_firefox
sub_check_exitcode
comment "kill a running firefox"
killtask "firefox.exe"
if not(FileExists($NewExe$))
logError "Fatal: After Installation "+$NewExe$+" not found"
isFatalError
endif
comment "del temporary files"
Files_del
endif
[Files_copy_local]
copy -x "%SCRIPTPATH%\$FIREFOXVER$" c:\tmp
copy -s "%scriptpath%\firefox-profile\*" "$InstallDir$\defaults\profile\."
[Files_del]
delete -f "c:\tmp\$FIREFOXVER$"
[Winbatch_firefox]
; see http://wiki.mozilla.org/Installer:Command_Line_Arguments
"c:\tmp\$FIREFOXVER$" $SilentSwitch$
[dosbatch_profiledir]
@echo off
dir "%ProfileDir%" /b
[DosInAnIcon_TryToReconnect]
net use
set TIMEOUT=
:TRY
if exist "%SCRIPTPATH%\." goto READY
%ScriptDrive%
set TIMEOUT=%TIMEOUT%1
if %TIMEOUT% == 1111111111111111 goto READY
sleep 1
net use
goto TRY
:READY
[PatchTextFile_profile_proxy_file]
Set_Netscape_User_Pref ("network.proxy.type", 2)
Set_Netscape_User_Pref ("network.proxy.autoconfig_url", "file:///$PROXY_HOSTNAME_OR_IP$")
[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
isFatalError
endif
endif
endif
endif
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib gmbh
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/
[Actions]
requiredWinstVersion >= "4.10.8.6"
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ExitCode$
DefVar $ProductId$
DefVar $MozInstallDir$
DefVar $MozInstallDir64$
DefVar $LicenseRequired$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
DefVar $UninstallCommand$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
Set $ProductId$ = "firefox6"
Set $MozInstallDir$ = "%ProgramFilesDir%\Mozilla Firefox"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
Message "Uninstalling " + $ProductId$ + " ..."
if FileExists("%ScriptPath%\delsub.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, free license used"
Sub_free_license
endif
[Sub_free_license]
comment "License management is enabled and will be used"
comment "Trying to free license used for the product"
DefVar $result$
Set $result$ = FreeLicense($LicensePool$)
; If there is an assignment of a license pool to the product, it is possible to use
; Set $result$ = FreeLicense("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
;************************************************************
;
;delsub.ins
;
;************************************************************
; Message at install time:
Message "Deinstalling "+$ProductId$+" ..."
; kill a running firefox
killtask "firefox.exe"
; if firefox uninstall program exists then start it
if FileExists(""+$MozInstallDir$+"\uninstall\helper.exe")
set $UninstallCommand$ = ""+$MozInstallDir$+"\uninstall\helper.exe"
set $UninstallCommand$ = '"'+$UninstallCommand$+'" /S'
WinBatch_start_FirefoxUninstall /WaitSeconds 20
sub_check_exitcode
endif
; delete registry entry to the current installed version
Registry_delete_current_version
; delete files of current version
if not ($MozInstallDir$ = "")
Files_copy_deinstall
endif
[WinBatch_start_FirefoxUninstall]
$UninstallCommand$
;%SCRIPTPATH%\sleep 5
[Files_copy_deinstall]
delete -sf "$MozInstallDir$\"
[Registry_delete_current_version]
OpenKey [HKEY_LOCAL_MACHINE\Software\Mozilla\Mozilla Firefox]
set "CurrentVersion" = ""
[sub_check_exitcode]
comment "test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: "+$ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: "+$ExitCode$
isFatalError
endif
endif
endif
endif