記載された情報が古くなっている可能性がございますので十分ご注意ください。
最終回は、今までの技術を使って、ルータやアクセスポイントを自動で再起動させてみようと思います。
通常、ルータやアクセスポイントはベーシック認証かプログラム認証がかかったページへ操作します。どちらも以前記載している(3)や(4)を参考にして実現が可能です。
今回の例は「BUFFALO(バッファロー) WZR-HP-AG300H」を再起動させる例になります。>ベーシック認証
※BUFFALO(バッファロー)製のルータやアクセスポイントであれば、管理画面は大体同じ作りになっていると思います。
(下記をメモ帳等へコピー&ペーストして「~.vbs」というファイル名で保存すればOKです。)
Option Explicit
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Silent = True
objIE.Visible = True
Dim strURL
strURL = "http://192.168.xxx.xxx/cgi-bin/cgi?req=frm&frm=init.html"
objIE.navigate2 strURL, 2, Nothing, Nothing, "Authorization: Basic [root]の認証コード\n"
WScript.Sleep 5000
strURL = "http://192.168.16.252" & objIE.document.forms(0).action
Dim strPOST
strPOST = "reboot" & "=%BA%C6%B5%AF%C6%B0"
strPOST = strPOST & "&" & objIE.document.forms(0).item(1).name & "=" & objIE.document.forms(0).item(1).value
strPOST = strPOST & "&" & objIE.document.forms(0).item(2).name & "=" & objIE.document.forms(0).item(2).value
Dim postData
Set Stream = CreateObject("ADODB.Stream")
Stream.Open
Stream.Charset = "UTF-8"
Stream.WriteText "dummy=1&"
Stream.WriteText strPOST
Stream.Position = 0
Stream.Type = 1
postData = Stream.Read
Stream.Close
objIE.navigate2 strURL, 2, Nothing, postData, "Authorization: Basic [root]の認証コード\r\nContent-type: application/x-www-form-urlencoded\r\n"
WScript.Sleep 5000
Set objIE = Nothing
Set objShell = Nothing
今回のポイントは再起動ボタンを表示させる画面と再起動ボタンを押したアクションの2度アクセスが必要なことです。
- 再起動ボタンを表示させる画面 ← ここでは不正アクセスを防止する目的でアクセスした記録のIDが発行されるので、それを取得しています。
- 再起動ボタンを押したアクション ← ボタンを押したというデータを送ってコマンドを認識させます。ここで上記で取得したIDもあわせて送信してあげる必要があります。
これでスクリプトファイルをクリックするとルータやアクセスポイントが再起動してくれるようになりました。
これを使って、特定のサーバが再起動したら、自動で再起動させたりさせることも可能になります。









