Baffaloルータ自動再起動その2
WSHで簡単にできることはわかったが、実際やると2点問題が。
まずXP/2003に入っているWSHは5.6、Windows 7のはWSH 5.8。
5.6だと
myIE.Navigate "http://ルータのアドレス/cgi-bin/cgi?req=frm&frm=init.html"
これが使えない?(ちゃんと調べていないので、ミススペルかもしれないが、Win2003だとひっかかり)
これのDurty but Easyな回避策は、ShortCutでも起動…かな。
それと、Basic認証ログイン画面がでてきてしまう。
IEのバージョンによっては http://user:pass@address が無効にされているのでレジストリで許可するか、ログイン対策をしなければいけない。
レジストリで回避する場合は(お勧めしない)
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl
にFEATURE_HTTP_USERNAME_PASSWORD_DISABLEキーを作成、DWORD iexplore.exeを作成すると可能になるはず(データ値は0のままでOK)。
(未確認)
そうでない場合は、キー入力を送信するといい。
下記VBSを再度書き直し。
Dim myIE Dim myWS Set myIE = WScript.CreateObject("InternetExplorer.Application") Set myWS = WScript.CreateObject("WScript.SHell") myIE.Visible = true 'false うざいけど表示に。Falseでもうまくいくかは未確認 myIE.Navigate "http://ルータのアドレス/cgi-bin/cgi?req=frm&frm=init.html" WScript.Sleep 1500 '適当な長さ 'まずはIEを手前に myWS.AppActivate("Internet Explorer") WScript.Sleep 1500 'またちょっとまって '実際にパスワードを入力する場合は 'myWS.SendKey "root{TAB}" 'Baffaloのルータは常にユーザ名がrootなので 'myWS.SendKey "パスワード文字列" myWS.SendKey "{ENTER}" WScript.Sleep 1500 'ページが表示されるぐらいまでまつ。 '本当はここでちゃんとページ読み込みチェックが必要 myIE.document.forms(0).elements(0).click()