web-dev-qa-db-fra.com

paramètres de proxy firefox via la ligne de commande

Comment modifier les paramètres du proxy Firefox via la ligne de commande sous Windows XP/2k?

Merci

35
bluegene

Le paramètre de proxy est stocké dans le fichier prefs.js de l'utilisateur dans son profil Firefox.

Le chemin d'accès au répertoire du profil Firefox et au fichier est:

7b9ja6xv" est une chaîne aléatoire. Cependant, le répertoire du profil par défaut se termine toujours par ".default". La plupart du temps, il n'y aura de toute façon qu'un seul profil.

Les paramètres que vous recherchez sont nommés "network.proxy.http" et "network.proxy.http_port".

Maintenant, cela dépend de la technologie que vous êtes capable/disposé à utiliser pour changer le fichier. 

P.S .: S'il s'agit de modifier les paramètres de proxy d'un groupe d'utilisateurs via le script d'ouverture de session ou similaire, je vous recommande d'étudier la possibilité d'utiliser le mécanisme de découverte automatique du proxy ( WPAD ). Vous ne devrez plus jamais modifier la configuration du proxy sur un ordinateur utilisateur.

17
Tomalak

Je voulais juste poster le code dans un format plus propre ... posté à l'origine par 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%

Si quelqu'un veut supprimer les paramètres du proxy, voici un code qui le fera pour vous.

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%

Explication: Le code va chercher le fichier perfs.js. Il cherche ensuite la ligne "user_pref (" network.proxy.type ", 1);". S'il le trouve, il supprime le fichier avec le paramètre/v. La raison pour laquelle j'ai ajouté les lignes de renommage et de suppression est parce que je ne pouvais pas trouver un moyen de remplacer le fichier une fois que j'avais supprimé la ligne de proxy. Je suis sûr qu’il existe un moyen plus efficace/sûr de le faire ...

9
xBoarder

Je ne pense pas que tu peux. Cependant, vous pouvez créer différents profils pour chaque paramètre de proxy et utiliser la commande suivante pour basculer entre les profils lors de l'exécution de Firefox:

firefox -no-remote -P <profilename>
9
Ayman Hourieh

La méthode la plus simple consiste à configurer Firefox pour utiliser un PAC avec une URL de fichier, puis de modifier l'URL du fichier à l'aide de la commande line avant de démarrer Firefox.

C'est le moyen le plus simple. Il n'est pas nécessaire d'écrire un script rappelant le chemin d'accès à prefs.js (qui pourrait changer avec le temps).

Vous configurez votre profil une fois, puis vous éditez le fichier externe quand vous le souhaitez.

4
benc
it working perfect.

cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
echo user_pref("network.proxy.ftp", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.ftp_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.http", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.http_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.share_proxy_settings", true); >>prefs.js
echo user_pref("network.proxy.socks", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.socks_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.ssl", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.ssl_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.type", 1); >>prefs.js
set ffile=
cd %windir%
3
user220579

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%

C'est sympa ! Merci d'avoir écrit ça. J'avais besoin de ce morceau de code exact pour Windows. Mon but était de le faire en apprenant d'abord à le faire avec Linux, puis en apprenant le shell Windows, ce que je n'étais pas content de devoir faire, alors vous m'avez fait gagner du temps!

Ma version de Linux est au bas de ce post. J'ai essayé avec quel fichier pour insérer les préfs. Cela semble difficile. J'ai d'abord essayé dans ~/.mozilla/firefox/*. Default/prefs.js mais le chargement ne s'est pas très bien passé. L'écran about: config n'a jamais montré mes modifications. Actuellement, j'ai essayé de modifier le fichier de paramètres par défaut de Firefox. Si quelqu'un a les connaissances en tête, peut-il réécrire le code Windows pour ajouter uniquement les lignes s'il n'y est pas déjà? Je ne sais pas comment faire des choses sed/awk dans Windows sans installer Cygwin au préalable. 

La seule modification que j'ai pu apporter aux scripts Windows se trouve ci-dessus dans la partie citée. Je modifie l'adresse IP en% 1 afin que vous puissiez donner une option au script à partir de la ligne de commande, au lieu de devoir modifier le fichier. 

#!/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
3
johnny2k

Je devais définir une option supplémentaire pour autoriser la connexion SSO sur notre site intranet. J'ai ajouté du code à un exemple ci-dessus.

pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
echo user_pref("network.automatic-ntlm-auth.trusted-uris","site.domain.com, sites.domain.com");>>prefs.js
popd
2
Matt Hill

Vous pouvez facilement lancer Firefox à partir de la ligne de commande avec un serveur proxy à l'aide de l'option -proxy-server.

Cela fonctionne sur Mac, Windows et Linux.

path_to_firefox/firefox.exe -proxy-server% proxy_URL%

Exemple Mac:

/Applications/Firefox.app/Contents/MacOS/firefox-proxy-server proxy.example.com

2
user2445796

Je ne pense pas qu'il existe un moyen direct de définir le proxy (sous Windows). 

Vous pouvez toutefois installer un module complémentaire tel que FoxyProxy, créer plusieurs configurations pour différents mandataires et avant de démarrer FireFox, déplacez la configuration appropriée dans le dossier approprié de votre profil FireFox (à l'aide d'un fichier de traitement par lots).

1
Dirk Vollmar

Toutes les autres réponses ici expliquent comment programmer vos paramètres de proxy dans Firefox, ce à quoi WPAD a été inventé. Si vous avez configuré WPAD, il vous suffit d'indiquer à Firefox de l'utiliser pour détecter automatiquement ses paramètres, comme vous le feriez dans l'interface graphique.

Connection Settings

Pour ce faire, à partir d'un fichier cmd ou d'une ligne de commande:

pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
popd

Cela nécessite bien sûr que WPAD soit configuré et fonctionne correctement. De plus, je crois que prefs.js n’existera pas tant que vous n’avez pas exécuté Firefox une fois.

1
Samuel Harmer

J'ai trouvé un meilleur moyen de faire cela avec powershell sous Windows (mais vraiment uniquement parce que je cherchais un moyen de modifier par un script la chaîne de l'agent utilisateur, et non pas avec des proxies).

function set-uas
{
    Param
    (
            [string]$UAS = "Default"
    )

    $FirefoxPrefs = "C:\Users\Admin\AppData\Roaming\Mozilla\Firefox\Profiles\*.default\prefs.js"

    if ($UAS -eq "Default")
    {
        $fileinfo = type $FirefoxPrefs
        $fileinfo = $fileinfo | findstr /v "general.appname.override"    
        $fileinfo = $fileinfo | findstr /v "general.appversion.override"
        $fileinfo = $fileinfo | findstr /v "general.platform.override"  
        $fileinfo = $fileinfo | findstr /v "general.useragent.appName"  
        $fileinfo = $fileinfo | findstr /v "general.useragent.override" 
        $fileinfo = $fileinfo | findstr /v "general.useragent.vendor"   
        $fileinfo = $fileinfo | findstr /v "general.useragent.vendorSub"
        $fileinfo += "user_pref(`"useragentswitcher.import.overwrite`", false);`n"
        $fileinfo += "user_pref(`"useragentswitcher.menu.hide`", false);`n"
        $fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
        $fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII
    }
    else
    {
        set-uas Default
    }

    if ($UAS -eq "iphone")
    {
        $fileinfo = ""
        $fileinfo += "user_pref(`"general.appname.override`", `"Netscape`");`n"
        $fileinfo += "user_pref(`"general.appversion.override`", `"5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16`");`n"
        $fileinfo += "user_pref(`"general.platform.override`", `"iPhone`");`n"                                                                                                                                      
        $fileinfo += "user_pref(`"general.useragent.appName`", `"Mozilla`");`n"                                                                                                                                     
        $fileinfo += "user_pref(`"general.useragent.override`", `"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16`");`n"
        $fileinfo += "user_pref(`"general.useragent.vendor`", `"Apple Computer, Inc.`");`n"                                                                                                                         
        $fileinfo += "user_pref(`"general.useragent.vendorSub`", `"`");`n"                                                                                                                                          
        $fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
        $fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII -Append
    }
    elseif ($UAS -eq "lumia")
    {
        $fileinfo = ""
        $fileinfo += "user_pref(`"general.appname.override`", `"Netscape`");`n"
        $fileinfo += "user_pref(`"general.appversion.override`", `"9.80 (Windows Phone; Opera Mini/9.0.0/37.6652; U; en) Presto/2.12.423 Version/12.16`");`n"
        $fileinfo += "user_pref(`"general.platform.override`", `"Nokia`");`n"                                                                                                                                       
        $fileinfo += "user_pref(`"general.useragent.appName`", `"Mozilla`");`n"                                                                                                                                     
        $fileinfo += "user_pref(`"general.useragent.override`", `"Opera/9.80 (Windows Phone; Opera Mini/9.0.0/37.6652; U; en) Presto/2.12.423 Version/12.16`");`n"
        $fileinfo += "user_pref(`"general.useragent.vendor`", `"Microsoft`");`n"                                                                                                                            
        $fileinfo += "user_pref(`"general.useragent.vendorSub`", `"`");`n"                                                                                                                                          
        $fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
        $fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII -Append
    }
}

J'ai également installé le plug-in firefox "useragentswitcher", et je ne l'ai pas testé sans cela.
J'ai également défini "user_pref (" useragentswitcher.reset.onclose ", false);"

[EDIT] J'ai révisé mon code, il produisait parfois un mauvais caractère ou quelque chose du genre. Pour une raison quelconque, Firefox le détecte comme un profil corrompu et le profil entier a été ignoré et actualisé avec un profil par défaut.

En outre, crédit lorsque le crédit est dû: ce code est vaguement basé sur ce que xBoarder a posté dans sa réponse à sam3344920 ( https://stackoverflow.com/a/2509088/5403057 ). En outre, j'ai pu résoudre le bogue d'encodage avec l'aide d'un message de Phoenix14830 ( https://stackoverflow.com/a/32080395/5403057 )

[Edit2] Ajout de la prise en charge de la définition du système UAS en lumia. Ceci utilise en réalité un système d'exploitation mobile UAS, car je voulais toujours que bing fonctionne, et si vous utilisez les redirections régulières Lumas UAS www.bing.com vers bing: //?% ^ & *, Que Firefox ne sait pas traiter.

1
Garret Hoffman
@echo off
color 1F


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

Merci beaucoup, je trouve les réponses sur ce site. 

Ici, je me réfère à la production d'un fichier cmd 

par minimo 

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

pour le dernier firefox, vous devez changer 

cd *.default

à 

cd *.default*
0
Goon

Il existe également plusieurs add-ons Firefox qui aident avec les paramètres de proxy. FoxyProxy étant l’un des plus populaires. Il y en avait un autre, qui ne changeait que les paramètres du proxy avec la ligne de commande, mais je n'arrive pas à le trouver pour l'instant.

La page FoxyProxy de Mozilla

0
Nathan Hartley

Vous pouvez également utiliser le script Powershell que j'ai écrit pour le faire, ainsi que tous les autres paramètres de Firefox.

https://bitbucket.org/remyservices/powershell-firefoxpref/wiki/Home

En utilisant cela, vous pouvez facilement gérer Firefox en utilisant des scripts de démarrage d’ordinateur et d’ouverture de session utilisateur. Voir la page wiki pour savoir comment l'utiliser.

0
David Remy