windows10 プロキシ設定変更の自動化

windows10 プロキシ設定変更の自動化

プロキシ設定変更の自動化

接続するネットワークによってプロキシを使ったり使わなかったりする。
そのためネットワークを切り替えるたびにプロキシ設定の変更をする必要があり非常に手間がかかる。
具体的には下記の手順を毎回行う必要がある。

  1. 「Internet Explorer」を起動
  2. 「設定」→「インターネットオプション」→「接続」→「LANの設定」を開く
  3. 「LANにプロキシサーバーを使用する」のチェックを変更する

これ↓



そこで、この一連の作業の自動化を行った。

1. 「LANの設定」はレジストリを操作している

「LANの設定」が何をしているかというとGUI操作でレジストリの値を変更している。

具体的には、下の画像に示す
「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings」
の中身を操作している。



この画面はWindows10に標準搭載されている「レジストリ エディター」から見れる。

実際に「Internet Explorer」を起動して「LANの設定」を変更すると、対応したレジストリの値が変更されることが分かる。

例えば、今回自動化を目論む「LANにプロキシサーバーを使用する」チェックボックスのON、OFFを切り替えると、
「ProxyEnable」の値の0、1が切り替わる。

これ↓



このことから、レジストリの値を直接操作することができれば、わざわざ「Internet Explorer」を起動して「LANの設定」を行わなくとも良いことが分かる。

2. コマンドプロンプトによるレジストリ操作

コマンドプロンプトからレジストリの値が操作できる。
例えば、下記のコマンドを打つとさっきの「ProxyEnable」の値が1になる。
「レジストリ エディター」からも変化が確認できる。

1
2
set regpath="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg add %regpath% /f /v "ProxyEnable" /t reg_dword /d 1

コマンドの詳細

コマンド詳細
regレジストリを操作するコマンド
addレジストリに値を設定するコマンド
/fこれがないと、上書きしますか? (Yes/No)と毎回聞かれる
/vレジストリの名前を指定する。ここでは”ProxyEnable”
/tレジストリのデータ型を指定する。ここでは”reg_dword”
/dレジストリに設定する値

「HKCU」は「HKEY_CURRENT_USER」を省略したもの、正しく全部書いても良い。

3. バッチファイルによるレジストリ操作

さきほどのコマンドをテキストファイルに書くことでバッチファイルが完成する。
これによりバッチファイルをダブルクリックするだけでプロキシの設定変更ができる。

ProxyOn.bat

1
2
3
@echo off
set regpath="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg add %regpath% /f /v "ProxyEnable" /t reg_dword /d 1

ProxyOff.bat

1
2
3
@echo off
set regpath="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg add %regpath% /f /v "ProxyEnable" /t reg_dword /d 0

@echo offを最初に書かないと毎行メッセージが出てくる。
あってもなくてもいい。

4. ひとつのバッチファイルにまとめる

さきほどのバッチファイルをひとつにまとめる。
現在の”ProxyEnable”がONであればOFFに、OFFであればONにするようにしたい。

enableに現在のProxyEnableを入れて場合分けする。

ProxyChange.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set regpath="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

for /f "tokens=3" %%A in ('reg query %regpath% /v "ProxyEnable"') do set enable=%%A
echo %enable%

if %enable%==0x0 (
reg add %regpath% /f /v "ProxyEnable" /t reg_dword /d 1
echo Turn On Proxy Server
) else (
reg add %regpath% /f /v "ProxyEnable" /t reg_dword /d 0
echo Turn Off Proxy Server
)

バッチファイルの構文、複雑すぎる。

参考
https://windows.command-ref.com/cmd-reg-add.html
https://www.adminweb.jp/command/bat/index10.html

タグ ,

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×