Firefox ESR 17.0.2 Script Deployment mit Log, Anpassungen und Versionsvergleich

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 section
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);

10 Kommentare

  1. Es wäre interessant, Firefox vor dem Ausrollen so anzupassen, das beispielsweise keine Plugins installiert oder bestimmte ignoriert werden, z.B. Flash oder Java.

    lockPref(„xpinstall.enabled“, false); geht bei den neueren Versionen ja leider auch nicht mehr.

    Gruss G

  2. @Konrad:
    vielen Dank für den Link, kannte ich noch gar nicht. Hab das mal durchgeguckt, die Informationen zu Firefox sind ja eher spärlich aber immerhin hab ich die 2 Zeilen
    pref(„app.update.showInstalledUI“, false);
    pref(„browser.startup.homepage_override.mstone“, „ignore“);

    in die .cfg übernommen. Werde den Download noch updaten.

    @Guenny:
    Während meiner Recherche heute fand ich etwas, was dir vielleicht hilft. Hau mal in die override.ini folgende Zeile:
    EnableExtensionManager=false
    Das soll angeblich folgendes bewirken: „This will prevent the addition or removal of Extensions.“
    Klingt doch gut. Wenn du das bereits bei der Installation einstellen willst (und es funktioniert) kannst du das auch in die install.ini schreiben.
    Den Hinweis fand ich hier.

  3. Die Verteilung funktioniert einwandfrei unter Windows 7, siehe auch der Satz „Die Verteilung verläuft via Startscript in einer Active Directory Domäne mit 95% 32bit Windows 7 PCs.“.
    Also wenn es bei dir nicht funktioniert ist es ein lokales Problem. Gibts Fehlermeldungen oder irgendwas woran wir arbeiten könnten?

  4. Hallo,

    ist es damit möglich auch addons direkt mitzuverteilen? wenn ja, wie?

    wie bekomme ich die user-prefs hinein – muss ich die in local-settings.js reinkopieren?

    danke im voraus!

  5. Also mit den Plugins kann ich nicht helfen, die habe ich noch nicht mitverteilt, da kümmert sich jeder User selbst drum.
    Die globalen Einstellungen, die bei der Installation auf Firefox angewendet werden sollen, müssen in die local-settings.js. Diese gelten dann für alle Nutzer dieser Firefox Installation.

Schreibe einen Kommentar