Es ist wieder soweit, kürzlich veröffentlichte Mozilla die neue Version der Firefox ESR (Extended Support Release) Variante. Firefox 17.0.2 ESR ist vor allem für das Deployment in Unternehmen gedacht, wenn Stabilität und Sicherheit des Browsers wichtiger sind als neue Features und Spielereien.

Ich möchte kurz meine Verteilung hier für andere Administratoren bereitstellen.
Die Verteilung verläuft via Startscript in einer Active Directory Domäne mit 95% 32bit Windows 7 PCs.
Sie hat sich in der kompletten Firefox 10 ESR Reihe bereits als funktionstüchtig erwiesen und wurde seitdem immer wieder verbessert.

Wer sich schon etwas auskennt, hier direkt der Download:
download b Firefox ESR 17.0.2 Script Deployment mit Log, Anpassungen und Versionsvergleich
firefox-17-esr [.zip]

Updates:
1.3 – Bug, der die Installation verhinderte, wenn kein Firefox auf dem Client installiert ist, behoben
1.4 – mozilla.cfg um 2 Einstellungen ergänzt, die 2 “Thanks for installing Firefox” und “Congratulations on installing Firefox” Fenster blockt

Das Paket besteht aus folgenden Dateien:
Firefox17.0.2.exe – Setup Datei
firefox-installer.bat – Setup Script
log.txt – Setup Log Datei
mozilla.cfg – Firefox Setup Config Dateien
install.ini – Firefox Setup Config Dateien
override.ini – Firefox Setup Config Dateien
local-settings.js – Firefox Browser Einstellungen, Achtung: neuer Unterordner! siehe unten
deniedPCs.txt – optional: Client Filter Config Datei
allowedPCs.txt – optional: Client Filter Config Datei
VersionCompare.exe – Versionsvergleichstool
VersionCompare-test.bat – kleines Readme- und Test Script für das Versionsvergleichstool

Das Script als Klartext zum Reinlesen:
Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

@echo on
Color 9f
setlocal

REM *******************************************
REM  Title:   	Firefox ESR Silent Installer
REM  Author:  	Hannes Schurig
REM  Created: 	08.12.2011
REM  Changed: 	11.01.2013
REM  Version: 	1.4
REM  Quelle:	http://mockbox.net/configmgr-sccm/174-install-and-configure-firefox-silently.html
REM *******************************************

REM _______________________________________________________________
REM WICHTIG! Hier die aktuelle zu verteilende Version eingeben.
REM Die Installerdatei muss so benannt sein: Firefox[Version].exe
set newversion=17.0.2
REM _______________________________________________________________

set wd=\\server\Firefox
set toolsdir=\\server\Tools
set log=\\server\Firefox\log.txt
set instversion=0.0

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto install
::goto end

REM Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:install
title Firefox Installation wird überprüft...
echo Firefox Installation wird überprüft...

REM prüfe ob eine 32bit Version von Firefox schon installiert ist
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox" /v "CurrentVersion"^|findstr "CurrentVersion"') do set instversion=%%c
REM falls keine 32bit Version von Firefox gefunden wurde, prüfe 64bit
if "%instversion%"=="0.0" for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox" /v "CurrentVersion"^|findstr "CurrentVersion"') do set instversion=%%c

REM Version gleich?
if "%instversion%"=="%newversion%" echo %date% %time% - %computername% (%instversion%) hat bereits diese Version installiert. >> %log% & goto end

REM Wenn Version nicht gleich: vergleiche Versionen mit dem Versionchecker
%toolsdir%\VersionCompare.exe %instversion% %newversion%
set versioncompare=%errorlevel%
if %versioncompare%==0 echo %date% %time% - %computername% (%instversion%) hat bereits diese Version installiert. >> %log% & goto end
if %versioncompare%==1 echo %date% %time% - %computername% (%instversion%) hat bereits eine neuere Version installiert. >> %log% & goto end

echo %date% %time% - %computername% (%instversion%) startet die Firefox Installation...
echo %date% %time% - %computername% (%instversion%) startet die Firefox Installation... >> %log%

title Firefox wird installiert...
echo Firefox wird installiert...
REM aktuellste Version hier eintragen
"%wd%\Firefox%newversion%.exe" -ms

REM Install 32-bit customisations
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\override.ini" "%programfiles%\Mozilla Firefox\"
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\mozilla.cfg" "%programfiles%\Mozilla Firefox\"
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\local-settings.js" "%programfiles%\Mozilla Firefox\defaults\preferences"

REM Install 64-bit customisations
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\override.ini" "%ProgramFiles(x86)%\Mozilla Firefox\"
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\mozilla.cfg" "%ProgramFiles(x86)%\Mozilla Firefox\"
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\local-settings.js" "%ProgramFiles(x86)%\Mozilla Firefox\defaults\preferences"


REM Removes Firefox Desktop Icon - Windows XP
::if exist "%allusersprofile%\Desktop\Mozilla Firefox.lnk" del "%allusersprofile%\Desktop\Mozilla Firefox.lnk" /S

REM Removes Firefox Desktop Icon - Windows 7
::if exist "C:\Users\Public\Desktop\Mozilla Firefox.lnk" del "C:\Users\Public\Desktop\Mozilla Firefox.lnk"

echo %date% %time% - %computername% hat die Installation abgeschlossen...
echo %date% %time% - %computername% hat die Installation abgeschlossen... >> %log%

:end
endlocal

nötige Änderungen am Script
Zeile 17: die gewünschte Version muss hier stehen, in der “korrekten” Form, wie sie auch in der Registry zu finden ist. Die Installer .exe muss ebenfalls korrekt benannt werden.
Zeile 20-22: Pfade anpassen, Zeile 20+22 müssen auf den Firefox Ordner auf eurem Server/Netzlaufwerk zeigen, Zeile 21 auf den Ordner, der die VersionCompare.exe (im Download enthalten) beinhaltet
Zeile 25-30: Clientfilter, ggf. entfernen wenn nicht gewünscht
Zeile 36-48: Versionsvergleich der installierten Version mit der verfügbaren Version, ggf. anpassen oder entfernen. Aktuell wird die 17.0.2 ESR installiert wenn auf dem PC keine oder eine ältere Version gefunden wurde, nicht aber wenn die gleiche oder eine neue (z.B. 18.0 nicht ESR) gefunden wurde.
Zeile 69-73: Löschen des Desktop Icons ist deaktiviert (Icon bleibt also), ggf. die Kommentarzeichen entfernen

Ein paar zusätzliche Informationen zur Funktionsweise und den Einstellungen findet ihr auch in meinen damaligen Firefox Deployment Posts.

Noch eine Anmerkung: Das Verzeichnis .\defaults\pref\ ist outdated! Dort gelagerte Anpassungsdateien (wie die local-settings.js) werden ignoriert. Diese Anpassungen müssen jetzt in .\defaults\preferences\ abgelegt werden. Dort werden die Änderungen auch beachtet. Von mir getestet und bestätigt. via

Die Verteilung ist getestet und funktioniert.
Ein seltsames Problem bleibt jedoch: nach der Verteilung, beim ersten Start des Firefox, wird ein Tab mit dem Hinweis “Your Firefox is out of date” geöffnet. Und das obwohl Hilfe->Über Firefox bestätigt, dass die Version 17.0.2 im esr Channel momentan die aktuellste Version ist. Wenn jemand weiß wie ich das Anzeigen dieses Tabs verhindern kann, bitte Bescheid sagen.

Update: Diese Verteilung funktioniert übrigens auch wieder 1:1 für Thunderbird 17.0.2 ESR, gerade getestet. Einfach das Script an den 2, 3 Stellen wo “FIrefox” zu “Thunderbird” abändern, fertig. Die Anpassungen der mozilla.cfg müssen natürlich weg, die sind Firefox spezifisch. In der .cfg des Thunderbird hab ich aber auch nur 1 Zeile, die die globale Suche deaktiviert: pref(“mailnews.database.global.indexer.enabled”, false);