Mozilla bietet für beide Produkte keine .msi und die Dokumentationen sind recht dürftig, eine Verteilung der Software habe ich daher lange vor mir hergeschoben. Es ist aber einfach und zusätzlich zur aktuellsten Version kann man auch gleich Standardeinstellungen für alle Benutzer verteilen.

Ich möchte direkt die Seite verlinken, die mir die wichtigsten Fakten für eine erfolgreiche Verteilung vermittelt hat: Techblog mockbox.net liefert im Artikel Install and Configure Firefox 8 silently die Batchgrundlage und Tipps kurz und knapp. Vielen Dank.

Zutaten:
– Firefox/Thunderbird Installer, “Firefox8.0.1.exe”
– Installer Batch, “firefox-installer.bat”
– Einstellungsdatei, “local-settings.js”
– Einstellungsdatei, “override.ini”
– Einstellungsdatei, “mozilla.cfg”
– Logdatei, “log.txt”
– optional: Clientfilter, “allowed.txt”
– optional: Clientfilter, “denied.txt”

Zubereitung:
Alle Zutaten in einen Ordner, der von allen Clients erreichbar ist (Netzlaufwerk)!

Nun die Batch Datei öffnen und wir schauen mal rein:

Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

@echo on
Color 9f
setlocal

REM *******************************************
REM  Title:   	Firefox Silent Installer
REM  Author:  	Hannes Schurig
REM  Created: 	08.12.2011
REM  Changed: 	14.12.2011
REM  Version: 	1.1
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=10.0.2
REM _______________________________________________________________

set wd=\\server\pfad\Firefox
set log=\\server\pfad\Firefox\log.txt
set instversion=0

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowed.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%\denied.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 Version 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" 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

if %instversion% GEQ %newversion% echo %date% %time% - %computername% hat bereits diese oder eine neuere Version installiert. >> %log% & goto end

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

title Firefox wird installiert...
echo Firefox wird installiert...

REM Format des Installers: Firefox[Version].exe - "Firefox10.0.2.exe"
"%wd%\Firefox%newversion%.exe" -ms

REM 32bit Einstellungsdateien kopieren
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\pref"


REM 64bit Einstellungsdateien kopieren
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\pref"


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

REM Desktop Icon löschen - Windows 7 - deaktiviert
::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

Updates:

  1. 08.03. GEQ statt == Überprüfung der Versionen, Initialisierung der instversion mit 0 statt 999
  2. 27.03. 64bit Überprüfung ergänzt

Batch anpassen:
Zeile 17: die gewünschte Version muss hier stehen, in der “korrekten” Form, wie sie auch in der Registry zu finden ist (siehe Zeile 36)
Zeile 20+21: Pfade anpassen
Zeile 24-29: Clientfilter, ggf. entfernen wenn nicht gewünscht
Zeile 62+65: Löschen des Desktop Icons ist deaktiviert (Icon bleibt also), ggf. die Kommentarzeichen entfernen

Die mozilla.cfg enthält gewünschte Einstellungen, die auf der about:config Seite von Firefox zu finden sind. Beispiel:

Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

//Firefox Default Settings
// Startseite
pref("browser.startup.homepage","http://www.iqb.hu-berlin.de");

// Standard Browser Check deaktivieren
pref("browser.shell.checkDefaultBrowser", false);

// Update Check deaktivieren
pref("app.update.enabled", false);

// stops the 'know your rights' button from displaying on first run
pref("browser.rights.3.shown", true);

// stops the request to send performance data from displaying
pref("toolkit.telemetry.prompted", true);

// Disable blinking text:
pref("browser.blink_allowed", false);

// Disable JS windows popping up without direct action from the user
// (as lots of porn and spam sites do):
pref("dom.disable_open_during_load", true);

// Syntax highlighting in View Source.
pref("view_source.syntax_highlight", true);

Die override.ini und die local-settings.js müsst ihr nicht anpassen. Ihr könntet die mozilla.cfg umbenennen und das in der local-settings.js anpassen aber naja, wozu? 1x1.trans Firefox/Thunderbird Deployment mit Einstellungen via AD GPO

Genug angepasst, das sollte reichen!

Funktionsweise:
Per Clientfilter kann man steuern, welche Computer die Installation übernehmen sollen. Einer der beiden Clientfilter kann aktiv sein. Der 2. Clientfilter blockiert genannte PCs; ist die denied.txt also leer werden alle PCs bedient. Das ist vermutlich gewünscht.
Ist die Installation für den PC erlaubt prüft der Installer zuerst, welche Firefox Version installiert ist. Dies wird aus der Registry ausgelesen. Ist nicht die gewünschte Version (Zeile 17) installiert geht es weiter zur eigentlichen Installation.
Mit dem -ms Parameter wird Firefox ohne Oberfläche silent mit Standardparametern installiert. Es ist auch möglich die Installation mit einer .ini Datei anzupassen.
Danach werden die 3 Einstellungsdateien kopiert und ggf. das Desktop Icon gelöscht.
Alle Einstellungen der mozilla.cfg werden bei jedem Firefox Start gesetzt und sind damit erzwungen solange die .cfg Datei im Verzeichnis bleibt.

Batch in die Startscripts der Gruppenrichtlinie und fertig!