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

—-

Hier kommt eine erweitere Version, welche auch ein zuvor eingerichtetes Profil berücksichtigt.

1) Firefox installieren 2) Add-ons herunterladen und installieren (empfohlen: WOT, Adblock Plus, Ghostery) 3) Firefox den Erfordernissen anpassen (zB. Proxy etc.) 4) Profil des aktuellen Nutzers kopieren. (Win7: C:\Users\<name>\AppData\Local\Mozilla\Firefox\Profiles)

This is an extended Version which also installs a defined profile.

1) Install Firefox 2) download and install add-ons (recommended: WOT, Adblock Plus, Ghostery) 3) set preferences for firefox (i.e. proxy etc.) 4) copy profile of actual user.

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


setup.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 — END SCRIPT —- uninstall.ins ; Copyright © 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$) — END SCRIPT — delsub.ins ; ; ;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 — END SCRIPT —