- ベストアンサー
VBSでSMARTの取得
「Win32_DiskDrive」クラスの「Capabilities」にある「SMART Notification 」の情報をVBSで取得するためのスクリプトについてご教示頂けませんでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Win32_DiskDriveというのはWMIのクラスを指していますよね? WMIでS.M.A.R.T.の情報取れるんだ? と思って調べて見ましたが、Capabilities の SMART Notification というのは S.M.A.R.T. をサポートしているか否か、という情報なんですね。 試して見たところ、以下のような感じでデバイスが S.M.A.R.T. をサポートするか否かを調べられますね。 注意点として、このスクリプトを管理者権限で実行する必要があります。 普通の権限で実行しても、capability無しの結果になりますね。 あと、USB接続のドライブに対してはこのクラスでは情報取得出来ないぽいように見えます。 ---- Const Capability_SMART_Notification = 10 Set wbemService = GetObject("winmgmts:\\.\root\cimv2") Set diskDrives = wbemService.ExecQuery("SELECT * FROM Win32_DiskDrive") For Each disk In diskDrives If Not IsNull(disk.Capabilities) Then For Each capability In disk.Capabilities If (capability = Capability_SMART_Notification) Then WScript.Echo disk.Caption & " has SMART Notification capability." End If Next End If Next ----
お礼
ありがとうございます。 最近、VBSでWMIを使用する機会がないため、WMIの扱い方を忘れていました。 回答を頂きましたVBSをBATで読み出すようにして、BATを管理者権限で実行しました。 あるソフトウェアでリムーバブルドライブの接続確認を行うため、[Win32_DiskDrive]を使用しているらしく、その際にSMART情報も取得しているとのことで、S.M.A.R.T. サポートの有無なら取得する意味があるのかとどういう情報が取得できるか疑問に思い、ご教示を賜りたく今回 質問をさせていただきました。