Windows用ロケーション変更スクリプト

いろいろ整理していたら、昔使っていたロケーション変更バッチファイルが出てきたので、断片的に晒すことにします。

以前は会社では静的IPを振ってプロキシ経由でインターネット接続、自宅ではDHCPでIPを取得して直接インターネット接続といったような環境でした。(昔やっていたブログからの転載でもあります。)

IPアドレスの変更

接続名はデフォルトの"ローカル エリア接続"を使用しています。変更は普通にnetshです。

静的IPの場合

netsh interface ip set address "ローカル エリア接続" static 192.168.1.10 255.255.255.0 192.168.1.1 1
netsh interface ip set dns     "ローカル エリア接続" static 192.168.1.101
netsh interface ip add dns     "ローカル エリア接続" 192.168.1.102
netsh interface ip set wins    "ローカル エリア接続" static 192.168.1.201
netsh interface ip add wins    "ローカル エリア接続" 192.168.1.202

DNS、WINSはセカンダリまで設定する例です。Vista以降はnetsh interface ipv4ですね。

DHCPの場合

netsh interface ip set address "ローカル エリア接続" dhcp
netsh interface ip set dns     "ローカル エリア接続" dhcp
netsh interface ip set wins    "ローカル エリア接続" dhcp

プロキシ設定

プロキシの設定はアプリケーションによって独自でもっているもの、IEの設定(インターネットオプション)を使用するものなど様々なのである程度見極めが必要ですが、ここではIEFirefoxの例を紹介します。

IEの場合

レジストリを操作します。

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 1
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyServer /t reg_sz /d proxyserver.com:8080
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyOverride /t reg_sz /d "<local>"

proxyserver.com:8080の部分に使用するプロキシサーバのFQDNもしくはIPアドレスとポート番号を入れればOKです。

プロキシ設定を外す場合は

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 0

です。

Firefoxの場合

Firefoxは独自で設定をもっていて、レジストリを使用しないため柔軟です。もっとも簡単な方法はプロファイルを分けることだと思いますが、アドオンとかブックマークとか同期が面倒という場合は、ひとつのプロファイルでロケーションによってuser.jsを差し替えるという方法がいいかもしれません。

プロキシを設定する場合

// プロキシ設定
user_pref("network.proxy.ftp", "proxyserver.com");
user_pref("network.proxy.ftp_port", 8080);
user_pref("network.proxy.gopher", "proxyserver.com");
user_pref("network.proxy.gopher_port", 8080);
user_pref("network.proxy.http", "proxyserver.com");
user_pref("network.proxy.http_port", 8080);
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "proxyserver.com");
user_pref("network.proxy.socks_port", 8080);
user_pref("network.proxy.ssl", "proxyserver.com");
user_pref("network.proxy.ssl_port", 8080);
// プロキシ設定有無[1:有 2:無]
user_pref("network.proxy.type", 1);

プロキシを設定しない場合

user_pref("network.proxy.type", 0);

この2種類のuser.jsを用意しておき、FirefoxのプロファイルがあるフォルダにそれぞれのロケーションにあわせてコピーすればOKです。Firefoxのプロファイルは

%APPDATA%\Mozilla\Firefox\Profiles

にあり、8文字の乱数+指定したプロファイル名のフォルダがあると思います。作成(firefox -p)した覚えがなければ、xxxxxxxx.defaultというフォルダがあると思いますので、それがプロファイルのフォルダになります。

ネットワークドライブの割り当て

ネットワークドライブの割り当てもロケーションにより変更することが多いかと思います。

例えば、Zドライブに割り当てるときは

net use z: \\192.168.1.1\share password /user:username

とします。usernameとpasswordを省略すれば認証ダイアログが表示されます。

切断する場合は

net use z: /delete

します。



上記のような断片をうまく組み合わせてバッチファイルを作れば、今でも十分有用なロケーション変更用のスクリプトになるかもしれません。