Festplattenaktivität auslesen

  • 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 ^^

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    • 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
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    [/autoit] [autoit][/autoit] [autoit]

    $Output=""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $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

    [/autoit]
  • WOW O_O*

    DANKE DIR!! ^^ Damit wird mein neues Tool ein Hit :P


    MfG

    akira2012

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

  • 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

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***

    • 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....

    MfG

    akira2012

    ***---____---Wer RechtSCHRAIBfehler findet der darf Sie behalLTEN!---___---***