web-dev-qa-db-ja.com

Windows 7では、コマンドラインからプロキシ設定を変更する方法?

Windows 7でコマンドラインからプロキシ設定を変更する方法

私はhttp_proxyだけについて話しているのではありません。システム全体のプロキシ設定(インターネットのプロパティ設定の設定)を設定する必要があります。それ、どうやったら出来るの?

45
prongs

通常はコントロールパネルから変更するレジストリスクリプトを設定してから、スクリプトをマージしてプロキシを有効にする必要があります。変更を無効にするには、 "元に戻す"レジストリスクリプトも必要です。

私の場合は、enable.regとdisable.regの2つのスクリプトがあります。

プロキシを有効にします。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"="http://10.10.10.1/autoproxy/proxy.pac"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

プロキシを無効にします。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"=-

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"disable"スクリプトでは、AutoConfigURLの最後にある=-が実際にレジストリからキーを削除します。

上記の値は、この回答のために変更されています。実際の16進値ははるかに長いです。

これらのスクリプトを使用するために、それぞれ次のようなバッチファイルを用意しました。

@echo off
start /min reg import C:\Path\To\Registry\File\enable_proxy.reg

それは完全にコマンドラインから実行可能です。

15
user3463

http://www.ehow.com/how_6887864_do-proxy-settings-command-Prompt_.html から取得したシンプルで実用的なソリューション

プロキシ使用を有効にするコマンド:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 1 /f

プロキシ使用を無効にするコマンド

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 0 /f

プロキシアドレスを変更するコマンド

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyServer /t REG_SZ /d proxyserveraddress:proxyport /f

読みやすくするために行継続(^)を追加しました。また、この場合は、システム全体の設定よりもユーザーごとの設定に似ています。

61
sayap

NetSh を助けに!

NetSh winhttp set proxyは役に立ちます。コマンドは次のとおりです。

netsh winhttp set proxy myproxy

netsh winhttp set proxy myproxy:80 "<local>bar"

netsh winhttp set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.contoso.com"

27

私はC#でそれをやったが、哲学は同じで、レジストリに書いているので、以下の命令は行コマンドに外挿することができる。それは3つのことをしなければならない:

  1. ProxyEnableでレジストリ "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"に書き込みます。有効にするには1、無効にするには0

  2. ProxyServerで、レジストリ "HKCU¥Software¥Microsoft¥Windows¥CurrentVersion¥Internet Settings"に書き込みます。xxx.xxx.xxx.xxxx:yyyy(xxx ...はIP、yy ..はポートです)

  3. 手順1と2を実行すると、プロキシの有効化とIPとポートをレジストリに書き込むようになりますが、ブラウザを開くと、それで十分ではないことに気付くでしょう。まだナビゲートすることはできません。 3番目のステップは、接続設定に関するレジストリを変更することです。

"DefaultConnectionSettings"の "ソフトウェア\ Microsoft\Windows\CurrentVersion \インターネット設定\接続".

このレジストリには(少なくともW7では)204バイトありますが、変更する必要があるのはバイト8(バイト0が最初であるため9番目)だけです。バイト8の値には、プロキシの有効化/無効化に関する情報だけでなく、他の機能に関する情報も含まれています。

        //09 when only 'Automatically detect settings' is enabled 
        //03 when only 'Use a proxy server for your LAN' is enabled
        //0B when both are enabled
        //05 when only 'Use automatic configuration script' is enabled
        //0D when 'Automatically detect settings' and 'Use automatic      configuration script' are enabled
        //07 when 'Use a proxy server for your LAN' and 'Use automatic configuration script' are enabled
        //0F when all the three are enabled. 
        //01 when none of them are enabled. 

私の場合は、「設定を自動的に検出する」が常に有効になっているので、バイト8の値を09から0Bに、またその逆にプロキシを有効または無効にします。

3
Ivan

バッチファイルを作成し、以下の内容を貼り付けます(プロキシの状態が切り替わります)。

@echo off

FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable') DO SET currentProxy=%%B
rem ECHO currentProxy=%currentProxy%

if %currentProxy%==0x1 (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
echo Proxy Disabled
) else (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
echo Proxy Enabled
  )

pause
2
Dinesh Gupta