Servergespeichertes Active Directory Profil – Mozilla Firefox Profil bearbeiten

 in Browser, Entwicklung, Microsoft Windows



Vor kurzem Stand ich vor der Aufgabe mehrere Mozilla Firefox Profile von Usern mit servergespeicherten Profile in unterschiedlichen Active Directory Gruppen anzupassen.
Mit der Lösung das an den Arbeitsplätzen direkt zu tun war ich von vornherein nicht einverstanden und neue Gruppenrichtlinien kann man in größeren Unternehmensstrukturen nicht mal eben so einführen

Die Einstellungen können im Firefox händisch abgeändert werden. Hierzu gibt man „about:config“ in die Adresszeile ein.

Ich habe mir nun entsprechend eine Batch-Datei gebastelt mit der ich vordefinierte Werte hinzufügen bzw. neu in die „Prefs.js“ suchen und schreiben kann.
Das kleine Hindernis war lediglich mit einem UNC-Pfad (Fehlermeldung: CMD unterstützt keine UNC-Pfade als aktuelles Verzeichnis) umgehen zu können, sodass die Batch auch auf den xxxxx.default Ordner in dem die „Prefs.js“ liegt zugreifen kann.

Mein Netzwerkpfad des servergespeicherten Profils ist wie folgt aufgebaut:
\\LERNTT200\Profile\Username.CTX.V2\AppData\Roaming\Mozilla\Firefox\Profiles

Unter diesem Pfad liegen die servergespeicherten Active Directory Benutzerprofile der Anwender unter denen auch die FireFox-Einstellungen abgelegt sind.

1. Im ersten Schritt besteht die Möglichkeit den Benutzernamen des Anwenders einzugeben, damit dieser über eine Variable in dem Netzwerkpfad übergeben wird und direkt prüft ob der Pfad auch vorhanden ist.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@echo off
color 9f
chcp 1252
cls
 
:WahlJ 
 
Echo.
Echo ========================================================
Echo Bitte stellen Sie sicher, dass der Anwender vollstaendig
Echo von dem System abgemeldet ist.
Echo ========================================================
Echo.
 
Echo.
Echo ========================================================
Echo Bitte geben Sie die AD-Benutzerkennung des Anwenders ein.
Echo ========================================================
Echo.
 
if "%1"=="" goto eingabe
set ADUser=%1
 
:eingabe
set /p ADUser=AD-Benutzerkennung eingeben:
if exist "\\LERNTT200\Profile\%ADUser%.CTX.V2\AppData\Roaming\Mozilla\Firefox\Profiles" (
goto ausgabe ) 
 
goto keinordner

2.  Ist der Pfad vorhanden wird dieser übergeben. Nun wird mit einer for Angabe nach dem ordner „xxxxx.default“ gesucht. Das xxxxx steht dafür für eine von Firefox vordefinierte Kombination aus Buchstaben und Zahlen.

Der gesamte Pfad wird zum Schluß als %ffile% deklariert.

1
2
3
4
5
6
7
8
9
10
:ausgabe
cls
Echo.
Echo ========================================================
Echo FireFox wird vorbereitet.
Echo ========================================================
Echo.
 
set fdir="\\LERNTT200\Profile\%ADUser%.CTX.V2\AppData\Roaming\Mozilla\Firefox\Profiles"
for /d %%d in ("%fdir%\*") do set ffile=%%d

3. Damit nun keine Einstellungen doppelt in das Profil gespeichert werden, wird die Datei „Prefs.js“ nach den Einstellungsangaben die später geändert werden sollen durchsucht. In meinem Fall beläuft sich die Suche auf „gfx.direct2d.disabled, gfx.direct2d.force-enabled, gfx.use_text_smoothing_setting und gfx.downloadable_fonts.enabled“. Zeilen die diese Angaben beinhalten werden vollständig gelöscht.

1
2
3
4
5
6
7
8
9
10
11
12
cls
Echo.
Echo ========================================================
Echo Bearbeitung des Profils für %ADUser% laeuft.
Echo ========================================================
Echo.
 
for /f "delims=" %%i in ('dir /s /b "%ffile%\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "gfx.direct2d.disabled" "%%i.bak">"%%i" & del "%%i.bak") 2>NUL >NUL
for /f "delims=" %%i in ('dir /s /b "%ffile%\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "gfx.direct2d.force-enabled" "%%i.bak">"%%i" & del "%%i.bak") 2>NUL >NUL
for /f "delims=" %%i in ('dir /s /b "%ffile%\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "gfx.use_text_smoothing_setting" "%%i.bak">"%%i" & del "%%i.bak") 2>NUL >NUL
for /f "delims=" %%i in ('dir /s /b "%ffile%\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "gfx.content.azure.enabled" "%%i.bak">"%%i" & del "%%i.bak") 2>NUL >NUL
for /f "delims=" %%i in ('dir /s /b "%ffile%\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "gfx.downloadable_fonts.enabled" "%%i.bak">"%%i" & del "%%i.bak") 2>NUL >NUL

4. Nun werden die gewünschten Einstellungsangaben in die Profildatei geschrieben.

1
2
3
4
5
6
7
echo user_pref("gfx.direct2d.disabled", true); >>%ffile%\prefs.js
echo user_pref("gfx.direct2d.force-enabled", true); >>%ffile%\prefs.js
echo user_pref("gfx.use_text_smoothing_setting", true); >>%ffile%\prefs.js
echo user_pref("gfx.content.azure.enabled", true); >>%ffile%\prefs.js
echo user_pref("gfx.downloadable_fonts.enabled", false); >>%ffile%\prefs.js
set ffile=
cd %windir%

5. Nun erfolgt noch eine Abfrage ob erneut ein Profil bearbeitet oder die Batch Datei geschlossen werden soll.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cls
Echo.
Echo ========================================================
Echo FireFox wurde konfiguriert.
Echo.
Echo Benutzer bearbeitet: %ADUser%
Echo.
Echo ========================================================
Echo.
 
ECHO Moechten Sie einen weiteren Benutzer konfigurieren?
SET /P X=(J)a oder (N)ein?:
IF /I "%X%"=="J" goto :WahlJ
IF /I "%X%"=="N" goto :WahlN

6. Wichtig zum Ende hin ist nun der Part, wenn der Pfad nicht gefunden werden konnte. Hier wird dann ein kurzer Hinweis ausgegeben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:keinordner
cls
Echo.
Echo ==============================================================================
Echo Profilordner von %ADUser% wurde nicht gefunden.
Echo Es wurde versucht den folgenden Ordner zu finden:
Echo.
Echo \\LERNTT200\Profile\%ADUser%.CTX.V2\AppData\Roaming\Mozilla\Firefox\Profiles
Echo ==============================================================================
Echo.
 
ECHO Moechten Sie es erneut versuchen?
SET /P X=(J)a oder (N)ein?:
IF /I "%X%"=="J" goto :WahlJ
IF /I "%X%"=="N" goto :WahlN
 
:WahlN

7. Die Datei wird nun als xxx.bat Datei abgespeichert.
Ich wünsche viel Spaß und biete als Download noch ein Demoprojekt an.

Download: Demoprojekt