【当ブログではアフィリエイト広告を利用しています】

[VBScript] Internet Explorer 自動操作(最終回) ルータやアクセスポイントを自動で再起動させたい

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

最終回は、今までの技術を使って、ルータやアクセスポイントを自動で再起動させてみようと思います。
通常、ルータやアクセスポイントはベーシック認証かプログラム認証がかかったページへ操作します。どちらも以前記載している(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もあわせて送信してあげる必要があります。

これでスクリプトファイルをクリックするとルータやアクセスポイントが再起動してくれるようになりました。
これを使って、特定のサーバが再起動したら、自動で再起動させたりさせることも可能になります。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。