Hi,
in newer Versions of the Windows operating system you to not need additional tools to get the most important Harddisk smart parameters.
An overall state of the disks gets the following query. For all supported drives an Property PredictFailure is added.
$aDisks=Get-WmiObject -namespace root\cimv2 -class Win32_DiskDrive $aDisks | % { $oFailurePredictStatusDisk=Get-WmiObject -Namespace "root\wmi" -query ("select * from MSStorageDriver_FailurePredictStatus where InstanceName like'"+$_.PNPDeviceID.Replace("\","\\")+"%'") if($oFailurePredictStatusDisk) { Add-Member -memberType NoteProperty -InputObject ($_) -Name PredictFailure -Value $oFailurePredictStatusDisk.PredictFailure } } PS C:\> $aDisks|ft -AutoSize Model,DeviceID,PredictFailure Model DeviceID PredictFailure ----- -------- -------------- Samsung SSD 860 EVO 250GB \\.\PHYSICALDRIVE1 False SanDisk Ultra USB Device \\.\PHYSICALDRIVE2 SATA SSD \\.\PHYSICALDRIVE0 False
And with some more details
$aAddProperty=@("ReadErrorsCorrected","ReadErrorsTotal","Temperature","PowerOnHours","ReadLatencyMax","WriteLatencyMax","Wear") $aDisks=Get-WmiObject -namespace root\cimv2 -class Win32_DiskDrive $aDisks | % { $oFailurePredictStatusDisk=Get-WmiObject -Namespace "root\wmi" -query ("select * from MSStorageDriver_FailurePredictStatus where InstanceName like'"+$_.PNPDeviceID.Replace("\" ,"\\")+"%'") if($oFailurePredictStatusDisk) { Add-Member -memberType NoteProperty -InputObject ($_) -Name PredictFailure -Value $oFailurePredictStatusDisk.PredictFailure } $oStorageReliability=Get-PhysicalDisk -DeviceNumber $_.Index|Get-StorageReliabilityCounter foreach($sProperty in $aAddProperty) { Add-Member -memberType NoteProperty -InputObject ($_) -Name $sProperty -Value $oStorageReliability.$sProperty } } PS C:\> $aDisks|ft -AutoSize Model,DeviceID,PredictFailure,ReadErrorsTotal,ReadErrorsCorrected,PowerOnHours Model DeviceID PredictFailure ReadErrorsTotal ReadErrorsCorrected PowerOnHours ----- -------- -------------- --------------- ------------------- ------------ Samsung SSD 860 EVO 250GB \\.\PHYSICALDRIVE1 False 0 0 303 SanDisk Ultra USB Device \\.\PHYSICALDRIVE2 SATA SSD \\.\PHYSICALDRIVE0 False 409
There s really not a lot more to the app, but there is one other feature worth pointing out. If you are particularly concerned about the health of a drive, you can set CrystalDiskInfo to start with Windows and run as a background app. While it s running this way, CrystalDiskInfo will send a notification to alert you if the S.M.A.R.T. status of any drive changes. Just open the Function menu and toggle both the Resident and Startup options on.