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


46

Windows 7のコマンドラインからプロキシ設定を変更するにはどうすればよいですか?

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


プロキシにも承認が必要な場合:stackoverflow.com/questions/26992886/…–
Vadzim

回答:


15

コントロールパネルを使用して通常行う変更を行うレジストリスクリプトを構成し、スクリプトをマージしてプロキシを有効にする必要があります。変更を無効にするには、「元に戻す」レジストリスクリプトも必要です。

私の場合、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

「無効化」スクリプトでは=-、AutoConfigURLの最後に実際にレジストリからキーが削除されます。

上記の値は、この回答のために変更されていることに注意してください。実際の16進数値ははるかに長くなります。

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

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

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


私はこのようなことをすることになりました。バッチスクリプトからレジストリを操作する方法がわからなかったのでc#、このためのコードを書きました。とにかく感謝..-
プロング

これは私にはうまくいかないようです。「自動設定スクリプトを使用する」ボックスが「LAN設定」でチェックされ、チェックが外されているのを実際に見る必要がありますか?
ジョニー

@prongsあなたはそのC#コードを共有しようとしているのではないかと思います...そうですか?
tisaconundrum

61

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

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


3
IMO、これは質問に対する実際の答えです。ありがとう@sayap
kmonsoor

4
+1。これは私のはるかにエレガントなソリューションです。

3
注:^文字はコマンドの一部ではありません。
ジョシュアドレイク

6
ただし、ブラウザは「LAN設定」ウィンドウを開くまでナビゲートしません。この方法を使用すると、少なくともこれは私に起こります。これは、プロキシが変更されたブラウザーをウェイクアップするために行いますが、その後のみ接続が機能します。
マルコ

1
これは、あなたが私を探していたものです@Cricrazyだと思う
Narzard

27

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"


netshを使用してプロキシをクリアする:netsh winhttpリセットプロキシ
ケビンDriedger

9
これは、WinHTTPライブラリを使用するアプリケーションにのみ適用されると思います。簡単なテストの後、システム上の一般的なアプリケーションがそれを使用しているようには見えません。
-sayap

4

私はC#でそれをしましたが、哲学は同じであり、レジストリに書き込みますので、次の指示は行コマンドに外挿することができます。次の3つのことを行います。

  1. レジストリ「HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings」への書き込み、ProxyEnableで:有効にするには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」の「Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Connections」。

(少なくとも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に、またはその逆に切り替えてプロキシを有効または無効にします。


1
powershellを使用してDefaultConnectionSettings設定を更新するSOに関する回答を見つけました。誰かにとって役に立つかもしれないと思った。 stackoverflow.com/a/15914470/1158180
paulH

2

バッチファイルを作成し、次のコンテンツを貼り付けます(プロキシの状態が切り替わります)。

@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

1
これは@sayapの答えに非常に似ています。

-3

ここで正しい方向を示していることを願っていますが、「インターネットオプション」からプロキシ設定にアクセスしようとしている場合は、単にスタートメニューを開き、「インターネットオプション」(この方法で見つけることができる設定またはアプリケーションも入力してください)例「プロキシ」)。その後、このメニューを認識し、必要な設定を追加できるようになります。


1
男...あなたはタイトルを正しく見ませんでした...私はあなたが私に伝えようとしていることを知っています。コマンドラインから実行したいです。
プロング

申し訳ありませんが、バディはあなたをすべて修正したようです
ルークラッセル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.