Hier hast du alle Parameter, die du abfragen kannst. Ich hab mal das momentan nicht wichtige auskommentiert und nur für alle HD gemeinsam ('_Total') ausgeben lassen.
Pack es in eine Schleife - fertig. ![]()
Spoiler anzeigen
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
If $objItem.Name = '_Total' Then
$Output = $Output & "Name: " & $objItem.Name & @CRLF
;~ $Output = $Output & "AvgDiskBytesPerRead: " & $objItem.AvgDiskBytesPerRead & @CRLF
;~ $Output = $Output & "AvgDiskBytesPerTransfer: " & $objItem.AvgDiskBytesPerTransfer & @CRLF
;~ $Output = $Output & "AvgDiskBytesPerWrite: " & $objItem.AvgDiskBytesPerWrite & @CRLF
;~ $Output = $Output & "AvgDiskQueueLength: " & $objItem.AvgDiskQueueLength & @CRLF
;~ $Output = $Output & "AvgDiskReadQueueLength: " & $objItem.AvgDiskReadQueueLength & @CRLF
;~ $Output = $Output & "AvgDisksecPerRead: " & $objItem.AvgDisksecPerRead & @CRLF
;~ $Output = $Output & "AvgDisksecPerTransfer: " & $objItem.AvgDisksecPerTransfer & @CRLF
;~ $Output = $Output & "AvgDisksecPerWrite: " & $objItem.AvgDisksecPerWrite & @CRLF
;~ $Output = $Output & "AvgDiskWriteQueueLength: " & $objItem.AvgDiskWriteQueueLength & @CRLF
;~ $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
;~ $Output = $Output & "CurrentDiskQueueLength: " & $objItem.CurrentDiskQueueLength & @CRLF
;~ $Output = $Output & "Description: " & $objItem.Description & @CRLF
;~ $Output = $Output & "DiskBytesPersec: " & $objItem.DiskBytesPersec & @CRLF
$Output = $Output & "DiskReadBytesPersec: " & $objItem.DiskReadBytesPersec & @CRLF
;~ $Output = $Output & "DiskReadsPersec: " & $objItem.DiskReadsPersec & @CRLF
$Output = $Output & "DiskTransfersPersec: " & $objItem.DiskTransfersPersec & @CRLF
$Output = $Output & "DiskWriteBytesPersec: " & $objItem.DiskWriteBytesPersec & @CRLF
;~ $Output = $Output & "DiskWritesPersec: " & $objItem.DiskWritesPersec & @CRLF
;~ $Output = $Output & "Frequency_Object: " & $objItem.Frequency_Object & @CRLF
;~ $Output = $Output & "Frequency_PerfTime: " & $objItem.Frequency_PerfTime & @CRLF
;~ $Output = $Output & "Frequency_Sys100NS: " & $objItem.Frequency_Sys100NS & @CRLF
;~ $Output = $Output & "PercentDiskReadTime: " & $objItem.PercentDiskReadTime & @CRLF
;~ $Output = $Output & "PercentDiskTime: " & $objItem.PercentDiskTime & @CRLF
;~ $Output = $Output & "PercentDiskWriteTime: " & $objItem.PercentDiskWriteTime & @CRLF
$Output = $Output & "PercentIdleTime: " & $objItem.PercentIdleTime & @CRLF
;~ $Output = $Output & "SplitIOPerSec: " & $objItem.SplitIOPerSec & @CRLF
;~ $Output = $Output & "Timestamp_Object: " & $objItem.Timestamp_Object & @CRLF
;~ $Output = $Output & "Timestamp_PerfTime: " & $objItem.Timestamp_PerfTime & @CRLF
;~ $Output = $Output & "Timestamp_Sys100NS: " & $objItem.Timestamp_Sys100NS & @CRLF
If Msgbox(1,"WMI Output",$Output) = 2 Then ExitLoop
EndIf
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_PerfFormattedData_PerfDisk_PhysicalDisk" )
Endif