そこで、開発者の負荷を少しでも軽減すべく以下のツールを作成した。
◇◇◇ TCP/IP変更ツール ◇◇◇
<機能>
TCP/IPの接続情報を容易に変更することができる。
また、変更前に現在の接続先を確認することができる。
<リソース>
1. TCP-IPchanger.vbs←------実行プログラム
2. connection.properties←-----現在の接続先を管理する。
3. osaka.bat←----------1から呼び出されて、4の接続定義情報に変更する。
4. osaka.nsh←----------大阪の接続定義情報。
5. tokyo.bat←----------1から呼び出されて、6の接続定義情報に変更する。
6. tokyo.nsh←----------東京の接続定義情報。
※今回のサンプルは、大阪と東京のネットワークを使い分けると仮定している。
<操作イメージ>
<リソース詳細>
※文字色が黄色の箇所は、各自の環境に合わせて変更して下さい。
1. TCP-IPchanger.vbs
'Shellオブジェクトを取得する。
Set WshShell = WScript.CreateObject("WScript.Shell")
'実行ファイルセット
Dim read_file, bat_file1, bat_file2, prop_file, MyVar, MyVar2, nowConnection, readLine
prop_file = "connection.properties"
bat_file1 = "tokyo.bat"
bat_file2 = "osaka.bat"
'メッセージセット
Dim ip1, ip2, msg1, msg2, msg3, msg4, msg5, title1, title2, title3
ip1 = "東京"
ip2 = "大阪"
msg1 = "に接続中です。"
msg2 = "に接続する場合は『はい』を選択して下さい。"
msg3 = "に接続する場合は『いいえ』を選択して下さい。"
msg4 = "に変更します。コマンド画面が閉じるまでお待ち下さい。"
msg5 = "終了します。"
title1 = "現在の接続先"
title2 = "接続先選択"
title3 = "完了"
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set read_file = fso.OpenTextFile(prop_file)
readLine = read_file.ReadLine
'現在の接続先をチェックする。
If readLine = "0" Then
nowConnection = ip1
ElseIf readLine = "1" Then
nowConnection = ip2
End If
read_file.Close()
'現在の接続先を表示する。
If readLine = "0" Or readLine = "1" Then
MyVar2 = MsgBox (nowConnection + msg1, 64, title1)
End If
MyVar = MsgBox (ip1 + msg2 + Chr(13) + ip2 + msg3, 67, title2)
'キャンセル:2 / はい:6 / いいえ:7
If MyVar = 6 Then
Set read_file = fso.CreateTextFile(prop_file)
'実行ファイル呼び出し
WshShell.Run(bat_file1)
read_file.WriteLine "0"
MyVar = MsgBox (ip1 + msg4, 64, title3)
read_file.Close()
ElseIf MyVar = 7 Then
Set read_file = fso.CreateTextFile(prop_file)
'実行ファイル呼び出し
WshShell.Run(bat_file2)
read_file.WriteLine "1"
MyVar = MsgBox (ip2 + msg4, 64, title3)
read_file.Close()
Else
WScript.Echo msg5
End If
Set fso = Nothing
2. connection.properties
0
3. osaka.bat
start /min netsh -f C:\hoge\osaka.nsh
4. osaka.nsh
#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd
#========================
# インターフェイス構成
#========================
pushd interface ipv6
uninstall
popd
# ----------------------------------
# ISATAP 構成
# ----------------------------------
pushd interface ipv6 isatap
popd
# ----------------------------------
# 6to4 構成
# ----------------------------------
pushd interface ipv6 6to4
reset
popd
#========================
# ポート プロキシ構成
#========================
pushd interface portproxy
reset
popd
# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
set address name="ローカル エリア接続" source=static addr=999.999.999.999 mask=999.999.999.999 gateway=999.999.999.999 gwmetric=1
set dns name="ローカル エリア接続" source=static addr=none register=PRIMARY
set wins name="ローカル エリア接続" source=static addr=none
popd
5. tokyo.bat
start /min netsh -f C:\hoge\ tokyo.nsh
6. tokyo.nsh
#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd
#========================
# インターフェイス構成
#========================
pushd interface ipv6
uninstall
popd
# ----------------------------------
# ISATAP 構成
# ----------------------------------
pushd interface ipv6 isatap
popd
# ----------------------------------
# 6to4 構成
# ----------------------------------
pushd interface ipv6 6to4
reset
popd
#========================
# ポート プロキシ構成
#========================
pushd interface portproxy
reset
popd
# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
set address name="ローカル エリア接続" source=static addr=999.999.999.999 mask=999.999.999.999 gateway=999.999.999.999 gwmetric=1
set dns name="ローカル エリア接続" source=static addr=none register=PRIMARY
set wins name="ローカル エリア接続" source=static addr=none
popd