46 Stimmen

Firefox-Proxy-Einstellungen über die Befehlszeile

Wie ändere ich die Firefox Proxy-Einstellungen über die Kommandozeile unter Windows XP/2K?

Danke

18voto

Tomalak Punkte 320467

Die Proxy-Einstellung wird in der Benutzerdatei prefs.js Datei in ihrem Firefox-Profil.

Der Pfad zum Firefox-Profilverzeichnis und zur Datei lautet:

%APPDATA%\\Mozilla\\Firefox\\Profiles\\7b9ja6xv.default\\prefs.js

wo " 7b9ja6xv " ist eine zufällige Zeichenfolge. Das Verzeichnis des Standardprofils endet jedoch immer auf ".default". In den meisten Fällen wird es ohnehin nur ein Profil geben.

Die Einstellungen, die Sie suchen, heißen " network.proxy.http " und " network.proxy.http_port ".

Nun kommt es darauf an, welche Technologie Sie zum Ändern der Datei verwenden können/ wollen.

P.S.: Wenn es darum geht, die Proxy-Einstellungen einer Gruppe von Benutzern über das Anmeldeskript oder ähnliches zu ändern, empfehle ich, die Möglichkeit der automatischen Proxy-Erkennung zu prüfen ( WPAD ) Mechanismus. Sie müssten nie wieder die Proxy-Konfiguration auf einem Benutzerrechner ändern.

10voto

xBoarder Punkte 106

Ich wollte den Code nur in einem saubereren Format posten... ursprünglich gepostet von sam3344920

cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
echo user_pref("network.proxy.http", "148.233.229.235 ");>>"%ffile%\prefs.js"
echo user_pref("network.proxy.http_port", 3128);>>"%ffile%\prefs.js"
echo user_pref("network.proxy.type", 1);>>"%ffile%\prefs.js"
set ffile=
cd %windir%

Wenn jemand möchte, dass entfernen die Proxy-Einstellungen zu ändern, finden Sie hier einen Code, der dies für Sie erledigt.

cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
type "%ffile%\prefs.js" | findstr /v "user_pref("network.proxy.type", 1);" >"%ffile%\prefs_.js"
rename "%ffile%\prefs.js" "prefs__.js"
rename "%ffile%\prefs_.js" "prefs.js"
del "%ffile%\prefs__.js"
set ffile=
cd %windir%

Erläuterung: Der Code sucht nach der Datei perfs.js. Dann sucht er darin nach der Zeile "user_pref("network.proxy.type", 1);" . Wenn sie gefunden wird, wird die Datei mit dem Parameter /v gelöscht. Ich habe die Zeilen "Umbenennen" und "Löschen" hinzugefügt, weil ich keine Möglichkeit gefunden habe, die Datei zu überschreiben, nachdem ich die Proxy-Zeile entfernt hatte. Ich bin sicher, es gibt eine weitere effizienter/sicherer Art und Weise, dies zu tun...

10voto

Ayman Hourieh Punkte 122012

Ich glaube nicht, dass Sie das können. Sie können jedoch verschiedene Profile für jede Proxy-Einstellung erstellen und den folgenden Befehl verwenden, um zwischen den Profilen zu wechseln, wenn Sie Firefox ausführen:

firefox -no-remote -P <profilename>

5voto

benc Punkte 1214

Am einfachsten ist es, Firefox so zu konfigurieren, dass ein PAC mit einer Datei-URL verwendet wird, und dann die Datei-URL über den Zeilenbefehl zu ändern, bevor Sie Firefox starten.

Dies ist der einfachste Weg. Sie müssen kein Skript schreiben, das sich den Pfad zu prefs.js merkt (der sich mit der Zeit ändern kann).

Sie konfigurieren Ihr Profil einmal und bearbeiten dann die externe Datei, wann immer Sie wollen.

3voto

johnny2k Punkte 63

cd /D "%APPDATA% \Mozilla\Firefox\Profiles " cd *.default set ffile=%cd% echo user_pref("network.proxy.http", "%1");>>"%ffile% \prefs.js " echo user_pref("network.proxy.http_port", 3128);>>"%ffile% \prefs.js " echo user_pref("network.proxy.type", 1);>>"%ffile% \prefs.js " set ffile= cd %windir%

Das ist schön! Danke, dass du das geschrieben hast. Ich brauchte genau dieses Stück Code für Windows. Mein Ziel war es, dies zu tun, indem ich lerne, es mit Linux zuerst zu tun und dann die Windows-Shell zu lernen, die ich nicht glücklich war, zu tun, so dass Sie mir einige Zeit gespart!

Meine Linux-Version finden Sie am Ende dieses Beitrags. Ich habe damit experimentiert, in welche Datei ich die Voreinstellungen einfügen kann. Es scheint wählerisch zu sein. Zuerst habe ich es in ~/.mozilla/firefox/*.default/prefs.js versucht, aber es wurde nicht richtig geladen. Der Bildschirm about:config zeigte meine Änderungen nicht an. Jetzt habe ich versucht, die eigentliche Firefox-Standarddatei zu bearbeiten. Wenn jemand das Wissen aus dem Stegreif hat, könnte er den Windows-Code so umschreiben, dass er die Zeilen nur hinzufügt, wenn sie nicht schon drin sind? Ich habe keine Ahnung, wie ich sed/awk unter Windows einsetzen kann, ohne vorher Cygwin zu installieren.

Die einzige Änderung, die ich an den Windows-Skripten vornehmen konnte, findet sich oben im zitierten Teil. Ich ändere die IP in %1, damit Sie beim Aufruf des Skripts über die Befehlszeile eine Option angeben können, anstatt die Datei ändern zu müssen.

#!/bin/bash
version="`firefox -v | awk '{print substr($3,1,3)}'`"
echo $version " is the version."
# Insert an ip into firefox for the proxy if there isn't one
if
! grep network.proxy.http /etc/firefox-$version/pref/firefox.js 
  then echo 'pref("network.proxy.http", "'"$1"'")";' >> /etc/firefox-$version/pref/firefox.js 
fi

# Even if there is change it to what we want
sed -i s/^.*network.proxy.http\".*$/'pref("network.proxy.http", "'"$1"')";'/  /etc/firefox-$version/pref/firefox.js 

# Set the port
if ! grep network.proxy.http_port /etc/firefox-$version/pref/firefox.js 
  then echo 'pref("network.proxy.http_port", 9980);' >> /etc/firefox-$version/pref/firefox.js 
  else sed -i s/^.*network.proxy.http_port.*$/'pref("network.proxy.http_port", 9980);'/ /etc/firefox-$version/pref/firefox.js 
fi

# Turn on the proxy
if ! grep network.proxy.type  /etc/firefox-$version/pref/firefox.js 
  then echo 'pref("network.proxy.type", 1);' >> /etc/firefox-$version/pref/firefox.js 
  else sed -i s/^.*network.proxy.type.*$/'pref("network.proxy.type", 1)";'/ /etc/firefox-$version/pref/firefox.js 
fi

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X