|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 . 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_FailurePredict Status",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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Oct 5, 4:03 pm, Stekcub <Stek...@discussions.microsoft.com> wrote:
> 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 . > > 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_FailurePredict Status",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 |
|
![]() |
| Outils de la discussion | |
|
|