skrypz
Goto Top

Batch-Script (Update Firefox inkl. Parameter)

Hallo liebe Community,

ich habe den Auftrag bekommen ein Bat-Script zu schreiben, welches Firefox auf einem Client aktualisieren soll.
Dabei sollten bestimmte Parameter gesetzt werden wie z.B. das festlegen der Startseite oder dass beim Start keine Abfrage kommt bzgl. den Rechten etc.
Das ganze muss "silent" also im Hintergrund ablaufen so das der Anwender davon nichts mitbekommt.

Ich würde mich freuen wenn ihr mir ein paar Tipps zum Einstieg geben könntet bzw. mich auf andere Seiten die zum üben/lernen geeignet sind verweist.

Liebe Grüße Simon

Content-Key: 532594

Url: https://administrator.de/contentid/532594

Printed on: April 27, 2024 at 03:04 o'clock

Mitglied: 142232
142232 Jan 08, 2020 updated at 10:51:56 (UTC)
Goto Top
Member: Skrypz
Skrypz Jan 08, 2020 at 10:52:32 (UTC)
Goto Top
Dankeschön!
Member: Skrypz
Skrypz Jan 08, 2020 at 14:30:43 (UTC)
Goto Top
Hier ein kleiner Ansatz für die, die es interessiert:
(Die Parameter müsst ihr natürlich durch eure ersetzen)

:: Installationsskript für Mozilla Firefox CV (60.9.0esr) als EXE
:: Inkl. Migration von FFx86 > FFx64 oder FFx64 > FFx86
:: Inkl. Migration von FF-MSI-Installation > FF-EXE-Installation
:: Firefox Download: https://ftp.mozilla.org/pub/firefox/releases/

:: Pfad für Installationsdatei (Clients brauchen Leserechte)
set FirefoxDir=I:\6-Software\1-windows\firefox

:: Dateiname des Firefox-Setups
set SetupFF=Firefox Setup 60.9.0esr

:: Definiere ob die Setup.exe Firefox x86 oder Firefox x64 beinhaltet
set SetupEnv=x64

:: Textdatei welche die aktuelle Firefox-Version beinhaltet
set CurVer=install.txt

:: Ini-Datei welche man als Antwortdatei für das Firefox-Setup hinterlegt
:: Ini MUSS vorhanden sein, wenn keine Parameter gewünscht, dann Inhalt auskommentieren
set INI=firefoxinstall.ini

:: Die Datei autoconfig.js legt fest, welche Konfigdatei für die FF-Benutzereinstellungen verwendet werden sollen
set ACJS=autoconfig.js

:: Die Datei mozilla.cfg behinhaltet die FF-Benutzereinstellungen
set CFG=mozilla.cfg


:: ============================================================================
:: Beginne Prüfroutine
:: ============================================================================

:: Prüfe ob Netzwerkverbindung erreichbar ist, wenn nicht, breche ab
if not exist "%FirefoxDir%" goto Ausgang

:: Wenn Setup x64 ist und Firefox.exe x86 beende das Skript
if %SetupEnv%==x64 if %PROCESSOR_ARCHITECTURE%==x86 goto Ausgang

:: Lese aktuelle Version aus TXT
for /f "usebackq delims=" %%i in (%FirefoxDir%\%CurVer%) do @set "CurrentfirefoxVersion=%%i"

:: Definiere Variable ProgFiles
if %SetupEnv%==x86 set ProgFiles=%ProgramFiles(x86)%
if %SetupEnv%==x64 set ProgFiles=%ProgramFiles%

:: Manchmal gibt es bei einer Migration Überreste (Mozilla Ordner, CurrentVersion.txt) die man evtl. bereinigen muss
if not exist "%ProgramFiles(x86)%\Mozilla Firefox\firefox.exe" if exist "%ProgramFiles(x86)%\Mozilla Firefox\%CurVer%" del /F /Q /S "%ProgramFiles(x86)%\Mozilla Firefox\%CurVer%"
if not exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" if exist "%ProgramFiles%\Mozilla Firefox\%CurVer%" del /F /Q /S "%ProgramFiles%\Mozilla Firefox\%CurVer%"

:: Prüfe ob Programmordner vorhanden ist: wenn ja, lese Versionsdatei aus, wenn nicht, installiere
if not exist "%ProgFiles%\Mozilla Firefox" (
goto Uninstall) else (
for /f "usebackq delims=" %%i in ("%ProgFiles%\Mozilla Firefox\%CurVer%") do @set "InstalledfirefoxVersion=%%i"
)

:: Vergleiche verfügbare mit installierter Version, wenn beide gleich, dann beende Skript
if "%InstalledfirefoxVersion%"=="%CurrentfirefoxVersion%" goto Ausgang


:: ==============================================================
:: Versuche System von alten Installationen zu bereinigen
:: ==============================================================

:Uninstall

:: Aktiv laufendes Programm beenden
:: TASKKILL /IM firefox.exe /F

:: MSI-Uninstall
:: Wird nur benötigt, falls Firefox mal per MSI installiert wurde (Userdaten bleiben bestehen)
:: WMIC /interactive:off product where "name like '%%Firefox%%'" call uninstall /nointeractive

:: EXE-Uninstall
:: Wenn %SetupEnv%=x86 dann deinstalliere Firefox x64 bzw. bei x64 deinstalliere Firefox x86 (Userdaten bleiben bestehen)
if %SetupEnv%==x86 if exist "%ProgramFiles%\Mozilla Firefox\uninstall\helper.exe" "%ProgramFiles%\Mozilla Firefox\uninstall\helper.exe" -ms
if %SetupEnv%==x86 if exist "%ProgramFiles%\Mozilla Firefox" Timeout 10
if %SetupEnv%==x86 if exist "%ProgramFiles%\Mozilla Firefox" rd /S /Q "%ProgramFiles%\Mozilla Firefox"

if %SetupEnv%==x64 if exist "%ProgramFiles(x86)%\Mozilla Firefox\uninstall\helper.exe" "%ProgramFiles(x86)%\Mozilla Firefox\uninstall\helper.exe" -ms
if %SetupEnv%==x64 if exist "%ProgramFiles(x86)%\Mozilla Firefox" Timeout 10
if %SetupEnv%==x64 if exist "%ProgramFiles(x86)%\Mozilla Firefox" rd /S /Q "%ProgramFiles(x86)%\Mozilla Firefox"

:: Updatedienst "Maintenance Service" in bestehender Firefox-Installation deinstallieren falls vorhanden
If exist "%ProgFiles%\Mozilla Maintenance Service\Uninstall.exe" "%ProgFiles%\Mozilla Maintenance Service\Uninstall.exe" /S
Timeout 2


:: ==============================================================
:: Installieren
:: ==============================================================

:: Silent Installation des Setups
:Install
"%FirefoxDir%\%SetupFF%" /INI="%FirefoxDir%\%INI%"
if errorlevel 0 if exist "%ProgFiles%\Mozilla Firefox" copy /Y "%FirefoxDir%\%CurVer%" "%ProgFiles%\Mozilla Firefox\%CurVer%"

:: Konfiguration verteilen
if exist "%ProgFiles%\Mozilla Firefox" copy /Y "%FirefoxDir%\%CFG%" "%ProgFiles%\Mozilla Firefox\%CFG%"
if exist "%ProgFiles%\Mozilla Firefox\defaults\pref" copy /Y "%FirefoxDir%\%ACJS%" "%ProgFiles%\Mozilla Firefox\defaults\pref\%ACJS%"

:: Sofern der Updaterdienst "Maintenance Service" mit installiert wurde, wieder entfernen
If exist "%ProgramFiles(x86)%\Mozilla Maintenance Service\Uninstall.exe" "%ProgramFiles(x86)%\Mozilla Maintenance Service\Uninstall.exe" /S
If exist "%ProgramFiles%\Mozilla Maintenance Service\Uninstall.exe" "%ProgramFiles%\Mozilla Maintenance Service\Uninstall.exe" /S

:Ausgang
exit
Member: martin-cf3
martin-cf3 Jan 08, 2020 at 17:13:18 (UTC)
Goto Top
Ich würde dafür den freien Paketmanager chocolatey.org benutzen:

REM Choco installieren
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"  

REM Firefox installieren / updaten
choco upgrade firefox -y

Damit brauchst du keine Version mehr zu pflegen. Das mit den Einstellungen müsste man halt noch einbauen.