2012年4月2日月曜日

LAN DISK XR シャットダウンスクリプト


アイ・オー・データのLAN DISK XR(HDL-XR)をリモートからシャットダウンをする必要がありました。
ネット上を調べたのですが、telnetをインストールして行うとか…、簡単な方法が見つかりませんでした。
簡単な手法が存在しないのは、管理方法としてWeb上で実施する方法しか提供されていないからだと思います。

簡単にリモートからのシャットダウンを実施するために、VBスクリプトからIEオブジェクトを利用して、擬似的な操作を行うこととしました。
そのスクリプトは下記の通りです。

use_ie

Sub use_ie()

    ' IE起動
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Navigate "http://192.168.xxx.xxx/detail/system/power/power.cgi"
    ie.Visible = True
    waitIE ie
   
    ' パスワードを入力
    ie.Document.getElementById("e7aea1e79086e88085e38391e382b9e383afe383bce38389").Value = "管理者パスワード"
    WScript.Sleep 100
   
    ' ログオンボタンクリック
    ie.Document.all("e383ade382b0e382aae383b3e383aae383b3e382af").Click
    waitIE ie
   
    ' シャットダウン実行ボタンクリック
    ie.Document.all("e382b7e383a3e38383e38388e38380e382a6e383b3e5ae9fe8a18c").Click
    waitIE ie
   
    ' 実行するボタンクリック
    ie.Document.all("e5ae9fe8a18ce38199e3828b").Click
    waitIE ie
       
    ' 制御を破棄
    ie.Quit
    Set ie = Nothing

End Sub


' IEがビジー状態の間待ちます
Sub waitIE(ie)
   
    Do While ie.Busy = True Or ie.readystate <> 4
        WScript.Sleep 100
    Loop
   
    WScript.Sleep 1000
   
End Sub