Home All Groups Group Topic Archive Search About

predictive drive failure using wmi



Author
5 Oct 2007 8:03 PM
Stekcub
Hello all,

I have been trying to get a WMI query to return the status of 4 SCSI hard
drives in our Dell PE830s.  I have searched every where, used the WMI
Scriptomatic, used the wim32_diskdrive and mass_storage_driver classes. 
These seem to return the status of the array or raid controller.  The
controller is a PERC 4/SC SCSI raid controller.  I believe it is returning
the controller because it only loops through the collection once.  Since we
have four drives, I would expect it to return 4 objects.

Below I have pasted my most recent script.  Any insight into this would be a
big help.

This script returns only the controller:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery _   
    ("Select * from Win32_DiskDrive")

For each objDiskDrive in colDiskDrives
    Wscript.Echo "Bytes Per Sector: " & vbTab &  _
        objDiskDrive.BytesPerSector       
    For i = Lbound(objDiskDrive.Capabilities) to _
        Ubound(objDiskDrive.Capabilities)
        Wscript.Echo "Capabilities: " & vbTab &  _
            objDiskDrive.Capabilities(i)
    Next   
    Wscript.Echo "Caption: " & vbTab &  objDiskDrive.Caption
    Wscript.Echo "Device ID: " & vbTab &  objDiskDrive.DeviceID
    Wscript.Echo "Index: " & vbTab &  objDiskDrive.Index
    Wscript.Echo "Interface Type: " & vbTab & objDiskDrive.InterfaceType
    Wscript.Echo "Manufacturer: " & vbTab & objDiskDrive.Manufacturer
    Wscript.Echo "Media Loaded: " & vbTab  & objDiskDrive.MediaLoaded
    Wscript.Echo "Media Type: " & vbTab &  objDiskDrive.MediaType
    Wscript.Echo "Model: " & vbTab &  objDiskDrive.Model
    Wscript.Echo "Name: " & vbTab &  objDiskDrive.Name
    Wscript.Echo "Partitions: " & vbTab & objDiskDrive.Partitions
    Wscript.Echo "PNP DeviceID: " & vbTab &  objDiskDrive.PNPDeviceID
    Wscript.Echo "SCSI Bus: " & vbTab &  objDiskDrive.SCSIBus
    Wscript.Echo "SCSI Logical Unit: " & vbTab &  _
        objDiskDrive.SCSILogicalUnit
    Wscript.Echo "SCSI Port: " & vbTab &  objDiskDrive.SCSIPort
    Wscript.Echo "SCSI TargetId: " & vbTab &  objDiskDrive.SCSITargetId   
    Wscript.Echo "Sectors Per Track: " & vbTab &  _
        objDiskDrive.SectorsPerTrack       
    Wscript.Echo "Signature: " & vbTab &  objDiskDrive.Signature         
    Wscript.Echo "Size: " & vbTab &  objDiskDrive.Size    
    Wscript.Echo "Status: " & vbTab &  objDiskDrive.Status        
    Wscript.Echo "Total Cylinders: " & vbTab &  _
        objDiskDrive.TotalCylinders        
    Wscript.Echo "Total Heads: " & vbTab &  objDiskDrive.TotalHeads   
    Wscript.Echo "Total Sectors: " & vbTab &  objDiskDrive.TotalSectors
    Wscript.Echo "Total Tracks: " & vbTab &  objDiskDrive.TotalTracks
    Wscript.Echo "Tracks Per Cylinder: " & vbTab &  _
        objDiskDrive.TracksPerCylinder 
Next

this script returns nothing:


strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\WMI")
Set objInstances =
objWMI.InstancesOf("MSStorageDriver_FailurePredictStatus",48)

On Error Resume Next
For Each objInstance in objInstances
    With objInstance
        WScript.Echo .Active
        WScript.Echo .InstanceName
        WScript.Echo .PredictFailure
        WScript.Echo .Reason
    End With
On Error Goto 0
Next

Thanks
Stekcub

Author
8 Oct 2007 6:17 PM
pooradmin
On Oct 5, 4:03 pm, Stekcub <Stek***@discussions.microsoft.com> wrote:
Show quote
> Hello all,
>
> I have been trying to get a WMI query to return the status of 4 SCSI hard
> drives in our Dell PE830s.  I have searched every where, used the WMI
> Scriptomatic, used the wim32_diskdrive and mass_storage_driver classes. 
> These seem to return the status of the array or raid controller.  The
> controller is a PERC 4/SC SCSI raid controller.  I believe it is returning
> the controller because it only loops through the collection once.  Since we
> have four drives, I would expect it to return 4 objects.
>
> Below I have pasted my most recent script.  Any insight into this would be a
> big help.
>
> This script returns only the controller:
> strComputer = "."
> Set objWMIService = GetObject("winmgmts:" _
>     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
> Set colDiskDrives = objWMIService.ExecQuery _   
>     ("Select * from Win32_DiskDrive")
>
> For each objDiskDrive in colDiskDrives
>     Wscript.Echo "Bytes Per Sector: " & vbTab &  _
>         objDiskDrive.BytesPerSector       
>     For i = Lbound(objDiskDrive.Capabilities) to _
>         Ubound(objDiskDrive.Capabilities)
>         Wscript.Echo "Capabilities: " & vbTab &  _
>             objDiskDrive.Capabilities(i)
>     Next   
>     Wscript.Echo "Caption: " & vbTab &  objDiskDrive.Caption
>     Wscript.Echo "Device ID: " & vbTab &  objDiskDrive.DeviceID
>     Wscript.Echo "Index: " & vbTab &  objDiskDrive.Index
>     Wscript.Echo "Interface Type: " & vbTab & objDiskDrive.InterfaceType
>     Wscript.Echo "Manufacturer: " & vbTab & objDiskDrive.Manufacturer
>     Wscript.Echo "Media Loaded: " & vbTab  & objDiskDrive.MediaLoaded
>     Wscript.Echo "Media Type: " & vbTab &  objDiskDrive.MediaType
>     Wscript.Echo "Model: " & vbTab &  objDiskDrive.Model
>     Wscript.Echo "Name: " & vbTab &  objDiskDrive.Name
>     Wscript.Echo "Partitions: " & vbTab & objDiskDrive.Partitions
>     Wscript.Echo "PNP DeviceID: " & vbTab &  objDiskDrive.PNPDeviceID
>     Wscript.Echo "SCSI Bus: " & vbTab &  objDiskDrive.SCSIBus
>     Wscript.Echo "SCSI Logical Unit: " & vbTab &  _
>         objDiskDrive.SCSILogicalUnit
>     Wscript.Echo "SCSI Port: " & vbTab &  objDiskDrive.SCSIPort
>     Wscript.Echo "SCSI TargetId: " & vbTab &  objDiskDrive.SCSITargetId   
>     Wscript.Echo "Sectors Per Track: " & vbTab &  _
>         objDiskDrive.SectorsPerTrack       
>     Wscript.Echo "Signature: " & vbTab &  objDiskDrive.Signature         
>     Wscript.Echo "Size: " & vbTab &  objDiskDrive.Size   
>     Wscript.Echo "Status: " & vbTab &  objDiskDrive.Status       
>     Wscript.Echo "Total Cylinders: " & vbTab &  _
>         objDiskDrive.TotalCylinders       
>     Wscript.Echo "Total Heads: " & vbTab &  objDiskDrive.TotalHeads   
>     Wscript.Echo "Total Sectors: " & vbTab &  objDiskDrive.TotalSectors
>     Wscript.Echo "Total Tracks: " & vbTab &  objDiskDrive.TotalTracks
>     Wscript.Echo "Tracks Per Cylinder: " & vbTab &  _
>         objDiskDrive.TracksPerCylinder 
> Next
>
> this script returns nothing:
>
> strServer = "."
>
> Set objWMI = GetObject("winmgmts://" & strServer & "/root\WMI")
> Set objInstances =
> objWMI.InstancesOf("MSStorageDriver_FailurePredictStatus",48)
>
> On Error Resume Next
> For Each objInstance in objInstances
>     With objInstance
>         WScript.Echo .Active
>         WScript.Echo .InstanceName
>         WScript.Echo .PredictFailure
>         WScript.Echo .Reason
>     End With
> On Error Goto 0
> Next
>
> Thanks
> Stekcub

trying to find an answer to this for myself also.  You can setup
alerts and such for this information if you install the Dell
Openmanage. I don't see anywhere offhand within wmi to query the same
type of info openmanage does.  I did see one dell doc from '05 that
said it just used snmp and there wasn't a way to send a wmi/cim
query.  Going try and look within the itassistant also.

-J
www.pooradmin.com

AddThis Social Bookmark Button