elpadrino1010
Goto Top

Firefoxproxy per Batch entfernen

Hi Experten und Expertinnen,

eins vorweg, ich bin absoluter Neuling was batches angeht.

Ich habe folgendes Problem, nach der Firewallumstellung des Unternehmens sollen alle User ohne Proxy ins Internet gehen, dies soll durch eine Batch realisiert werden. Beim Internet Explorer ist es kein Problem, da es dort nur einige reg Einträge sind, allerdings habe ich Probleme mit dem Firefox, da dort der Proxy Userbezogen in der prefs.js hinterlegt wird, die in einem Unterordner liegt, der bei jedem User anders heißt, unter dem Pfad
C:\Dokumente und Einstellungen\User\Anwendungsdaten\Mozilla\Firefox\Profiles

Nun habe ich versucht aus der prefs.js alles rauszukopieren was nicht mit dem Proxy zu tun hat.

findstr /s /v /i "proxy" "%appdata%\prefs.js" >> "%appdata%\prefs.js"

Hat damit auch prima funktioniert, alle Proxyeinträge sind weg, bis auf die Tatsache, dass er mir vor allen Werten den Pfad mit eingefügt hat. Das sieht dann so aus…

%appdata%\Mozilla\Firefox\Profiles\kxtp0srq.default\prefs.js:user_pref("accessibility.typeaheadfind.flashBar", 0);
%appdata%\Mozilla\Firefox\Profiles\kxtp0srq.default\prefs.js:user_pref("app.update.auto", false);
%appdata%\Mozilla\Firefox\Profiles\kxtp0srq.default\prefs.js:user_pref("app.update.disable_button.showUpdateHistory", false);
%appdata%\Mozilla\Firefox\Profiles\kxtp0srq.default\prefs.js:user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1245701398);

Anstelle von %appdata% steht dort der volle Pfad zudem ist alles doppelt dar, sprich eine prefs.js liegt unter der anderen in einer Datei.

Meine Fragen sind folgende,

1.wie bekomme ich das hin das er mir die neue prefs.js ohne Pfade erstellt

2.wie bekomme ich diese dann wieder in den Ordner eingefügt wenn er bei jedem User anders heißt.

Hintergrund ist der, das die Startseiten die sich die User eingerichtet habe, bleiben sollen, den sonst könnte ich auch die ganze prefs.js löschen.

Ich hoffe das ich mein Problem verständlich erklärt habe und bedanke mich schon mal im voraus für die sicherlich hilfreichen Lösungsvorschläge.

Danke und Gruß

ITAzubiNeu

Content-ID: 118875

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

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

bastla
bastla 23.06.2009 um 18:53:16 Uhr
Goto Top
Hallo ITAzubiNeu und willkommen im Forum!

Für jeden einzelnen User (zB im Logonscript) etwa so:
@echo off & setlocal
set "Pfad=%appdata%\Mozilla\Firefox\Profiles"  
for /f "delims=" %%i in ('dir /s /b "%Pfad%\prefs.js"^|findstr /i "default\\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "proxy" "%%i.bak">"%%i")  
Das Suchen nach "default\prefs.js" soll verhindern, dass andere "prefs.js" (zB unter "extensions") ebenfalls verarbeitet werden.

Die erstellte ".bak"-Datei kannst Du natürlich auch wieder löschen lassen.

Grüße
bastla
elPadrino1010
elPadrino1010 23.06.2009 um 19:17:18 Uhr
Goto Top
Hi bastla,

super, das hat einwandfrei funktioniert, danke dafür.

Ich versteh nur nicht genau wie, z.B. die ".bak" Datei, wo legt er die den ab??? Da du ja meinst das ich die wieder löschen kann.

Und auch das restliche Skrip, könntest du es mir vielleicht in leicht groben Zügen erklären?

Vieln Dank nochmals.

Gruß ITAzubiNeu face-smile
bastla
bastla 23.06.2009 um 19:34:26 Uhr
Goto Top
Hallo ITAzubiNeu!

Die ".bak"-Datei ist die ursprüngliche "prefs.js" mit dem Zusatz ".bak" und ließe sich daher mit der folgenden Zeile 3 löschen:
for /f "delims=" %%i in ('dir /s /b "%Pfad%\prefs.js"^|findstr /i "default\\prefs.js"') do (move "%%i" "%%i.bak" & findstr /v /i "proxy" "%%i.bak">"%%i" & del "%%i.bak")

Eine kurze Beschreibung dieser Zeile:

Mit der "for /f"-Schleife werden alle Ergebniszeilen von
dir /s /b "%Pfad%\prefs.js"|findstr /i "default\\prefs.js"
einzeln als "%%i" verfügbar gemacht - eigentlich sollte das ohnehin nur die eine gewünschte Zeile mit dem passenden Pfad sein. Der doppelte "\" im Suchbegriff ist erforderlich, weil "\" zum "Escapen" von Zeichen (damit diese als "gewöhnliche" Zeichen und nicht als "Spezialzeichen", wie etwa der Punkt oder "$", verstanden werden) verwendet wird (siehe "findstr /?").

move "%%i" "%%i.bak"
sorgt für das Umbenennen der gefundenen Datei (und überschreibt eine ev bereits bestehende ".bak"-Datei, was mit "ren" nicht möglich wäre).

Mit dem "&" werden einzelne Befehle verknüpft.

findstr /v /i "proxy" "%%i.bak">"%%i"
filtert die vorher umbenannte Datei und schreibt das Ergebnis als neue "prefs.js" ("%%i" enthält ja den ursprünglichen Pfad und Dateinamen). Hier wäre es egal, ob ">" (neu erstellen) oder ">>" (anfügen an bestehende Datei) verwendet wird, da es die Datei ohenhin nicht geben kann (wurde ja eben erst umbenannt).

Schließlich noch das Aufräumen:
del "%%i.bak"
löscht die umbenannte Originaldatei.
Noch eine Anmerkung: Die Verwendung der Anführungszeichen um die Dateipfade herum ist zumindest unter XP wichtig, da der Pfad dort defaultmäßig unterhalb von "C:\Dokumente und Einstellungen" liegt und daher Leerzeichen enthalten sind (abgesehen davon schaden die Anführungszeichen so gut wie nie).

Grüße
bastla
elPadrino1010
elPadrino1010 23.06.2009 um 19:49:41 Uhr
Goto Top
Hi bastla,

dankeschön für die ausführliche Erklärung, mittlerweile komme ich dahinter wie es funktioniert. face-smile

Gruß und nochmals Danke

ITAzubiNeu