Kennt jemand eine möglichkeit um die aktivität der Festplatte auszulesen (Ob die Festplatte arbeitet oder nicht bzw nur gering). In AutoIt habe ich noch keine funktion gefunden die das könnte und google hat mir auch nichts verraten. Aber vielleicht wisst Ihr ja was
Festplattenaktivität auslesen
-
- [ offen ]
-
akira2012 -
21. Juli 2007 um 13:42 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
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
[autoit]$wbemFlagReturnImmediately = 0x10
[/autoit] [autoit][/autoit] [autoit]
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"$Output=""
[/autoit] [autoit][/autoit] [autoit]
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)If IsObj($colItems) then
[/autoit] [autoit][/autoit] [autoit]
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
[/autoit]
;~ $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 -
WOW O_O*
DANKE DIR!! Damit wird mein neues Tool ein Hit
MfG
akira2012
-
Schaue mir das gerade an aber bekomme nur Nullen raus. Kannst du malö ein wenig dazu erläutern oder mir sagen wo du das her hast und wo es infos dazu gibt?
MfG
akira2012
-
- Offizieller Beitrag
Hi,
also du mußt schon einen Vorgang starten, bei dem die gewählten Parameter dann angesprochen werden (z.B. Kopiervorgang einer größeren Datei um 'DiskReadBytes/DiskWriteBytes' zu erhalten, oder laß eine Mediadatei abspielen um eine dauerhafte Änderung der PercentIdleTime zu sehen).Ich hatte dazu hier im Forum mal die Links eingestellt.
s. hier:
Objekte unter AutoIt -
achso achso. Hmm - ich bräuchte eigentlich eine Möglichkeit zu testen ob generell eine Festplattenaktivität vorliegt. Werde mir heute abend mal die Objekt-Geschichte durchlesen ob da was bei ist....