Mittels CrystalDiskInfo kann man schnell den Status einer Festplatte oder SSD überprüfen. Möchte man dies z.B. automatisiert via Skript oder aus der Ferne via PsExec tun, geht das ebenfalls.
Schlicht an die jeweilige Exe-Datei die Option “/CopyExit” anhängen. Beispiele:
DiskInfo32.exe /CopyExit DiskInfo64.exe /CopyExit
Das Resultat wird in der Datei “DiskInfo.txt” im Ordner von CrystalDiskInfo gespeichert. Nachfolgend ein Auszug aus einer dieser Dateien:
---------------------------------------------------------------------------- CrystalDiskInfo 7.7.0 (C) 2008-2018 hiyohiyo Crystal Dew World : https://crystalmark.info/ ---------------------------------------------------------------------------- OS : Windows 7 Professional SP1 [6.1 Build 7601] (x64) Date : 2018/09/18 13:39:54 -- Controller Map ---------------------------------------------------------- + Intel(R) 8 Series/C220 Chipset Family SATA AHCI Controller [ATA] - INTE SSDSC2BW120H6 SCSI Disk Device -- Disk List --------------------------------------------------------------- (1) INTEL SSDSC2BW120H6 : 120,0 GB [0/0/0, pd1] - il ---------------------------------------------------------------------------- (1) INTEL SSDSC2BW120H6 ---------------------------------------------------------------------------- Model : INTEL SSDSC2BW120H6 Firmware : RG21 Serial Number : xxxxxxxxxxxxxxxx Disk Size : 120,0 GB (8,4/120,0/120,0/120,0) Buffer Size : Unbekannt Queue Depth : 32 # of Sectors : 234441648 Rotation Rate : ---- (SSD) Interface : Serial ATA Major Version : ACS-3 Minor Version : ---- Transfer Mode : SATA/600 | SATA/600 Power On Hours : 1854 Std. Power On Count : 244 mal Host Reads : 2867 GB Host Writes : 1792 GB NAND Writes : 41066 GB Temperature : 34 C (93 F) Health Status : Gut (85 %) Features : S.M.A.R.T., APM, 48bit LBA, NCQ, TRIM, DevSleep APM Level : 00FEh [ON] AAM Level : ---- Drive Letter : C: -- S.M.A.R.T. -------------------------------------------------------------- ID Cur Wor Thr RawValues(6) Attribute Name 05 100 100 __0 000000000000 Anz. wiederzugewiesener Sektoren 09 100 100 __0 00000000073E Betriebsstunden 0C 100 100 __0 0000000000F4 Anz. Geräte-Einschaltvorgänge AA _85 100 _10 000000000000 Verfügbarer Reservespeicher AB 100 100 __0 000000000000 Programmfehler AC 100 100 __0 000000000000 Löschfehler AE 100 100 __0 000000000005 Anz. unerwarteter Spannungsabfälle B7 100 100 __0 000000000000 SATA Downshift Count B8 100 100 _90 000000000000 Ende-zu-Ende-Fehlererkennungszählerstand BB 100 100 __0 000000000000 Nicht korrigierbare Fehler BE _34 100 __0 0012003C0022 Temperatur C0 100 100 __0 000000000005 Unsachgemäße Ausschaltung C7 100 100 __0 000000000000 CRC-Fehler, Anzahl E1 100 100 __0 00000000E003 Host-Schreibvorgänge E2 100 100 __0 00000000FFFF Indikator der Mediumabnutzung unter Arbeitslast E3 100 100 __0 00000000003D Prozentsatz der Host-Lese-/Schreibvorgänge unter Arbeitslast E4 100 100 __0 00000000FFFF Arbeitslastmessung E8 _85 100 _10 000000000000 Verfügbarer Reservespeicher E9 _79 100 __0 000000000000 Medienabnutzungsanzeiger F1 100 100 __0 00000000E003 LBA geschrieben (gesamt) F2 100 100 __0 00000001666B LBA gelesen (gesamt) F9 100 100 __0 00000000A06A NAND geschrieben (gesamt)
Am interessantesten dürfte wohl “Health Status” sein.
Quelle:
Crystal Dew World – CrystalDiskInfo – Advanced Features
Update 19.03.2021
Ich konnte leider nicht klären, ob CrystalDiskInfo einen Rückgabewert (Returncode, Errorlevel) ausgibt, bislang ist dieser immer “0”. Ein defektes Laufwerk zum Testen habe ich im Moment nicht. Auf jeden Fall kann man den Bericht “DiskInfo.txt” nach dem “Health Status” oder konkreten Warnungen sowie Fehlern durchsuchen.
Als ganz simple Variante kann z.B. dies herhalten:
find /i "Health Status" < DiskInfo.txt
Als Ausgabe bekommt man dann sowas:
Health Status : Gut (100 %) Health Status : Gut
In diesem Beispiel sind zwei Laufwerke mit dem Computer verbunden, einmal die interne SSD (“Health Status : Gut (100 %)”) und einmal eine USB-Festplatte (“Health Status : Gut”).
In der jeweiligen Sprachdatei unter “..\CdiResource\language” kann man die verfügbaren Stati rauslesen:
[DiskStatus] GOOD=Gut CAUTION=Vorsicht BAD=Schlecht UNKNOWN=Unbekannt DISK=Festplatte
Bei meinen Tests wurde immer die “German2.lang” verwendet.
Nun könnte man das Ganze so zurechtstricken, das wenn kein “Gut” gefunden wird oder wenn konkret “Vorsicht” oder “Fehler” gefunden werden ein Alarm ausgelöst wird. Am Beispiel vom “find”-Befehl sähe dies so aus:
find /i "Health Status : Vorsicht" < DiskInfo.txt if %errorlevel%==0 set Error=True find /i "Health Status : Schlecht" < DiskInfo.txt if %errorlevel%==0 set Error=True
Der Rückgabewert “0” bedeutet bei “find” immer “gefunden”, größer als “0” bedeutet “nicht gefunden”.
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar