Мониторинг состояния жестких дисков (SMART) в Windows

Современные версии Windows собирают информацию о состоянии жестких дисках компьютера через SMART и могут оповестить пользователя о наличии проблем. Рассмотрим, как выглядит уведомление Windows о физических проблемах с жестким диском и как с помощью PowerShell и командной строки получить SMART информацию о здоровье ваших дисков через встроенные WMI классы.

Большинство современных жестких дисков (в том числе HDD, SSD, NVMe SSD) поддерживает технологию базового самотестирования и анализа состояния S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology). Контроллер диска оценивает состояние физических характеристик диска, и Windows может получить доступ к этим данным через WMI.

Информация SMART доступна только для локальных физических дисков (ATA /SATA устройств). Внешние LUN, подключенных через Fiber Channel, iSCSI, RAID или сетевые диски в основном не сообщают статус SMART.

Ошибка “Windows обнаружила неполадки жесткого диска”

В Windows по умолчанию включен мониторинг дисков службами диспетчера дилогических дисков (Logical Disk Manager) и Diagnostic Policy Service. И если один из дисков возвращает статус Predictive Failure, ОС запускает задание планировщика Microsoft-Windows-DiskDiagnosticResolver (\Microsoft\Windows\DiskDiagnostic), которое выводит сообщение:

Windows обнаружила неполадки жесткого диска
Немедленно создайте резервную копию всех файлов для предотвращения потери информации. Затем свяжитесь с производителем компьютера для замены или ремонта жесткого диска.
Windows detected a hard disk problem
Back up your files immediately to prevent information loss, and then contact the computer manufacturer to determine if you need to repair the disk.

ошибка - Windows обнаружила неполадки жесткого диска

В журнале событий при этом появляются сообщения вида:

The driver has detected that device \Device\Harddisk1\DR1 has predicted that it will fail. Immediately back up your data and replace your hard disk drive. A failure may be imminent.
Windows Disk Diagnostic detected a S.M.A.R.T. fault on disk .......... (volumes E:\). This disk might fail; back up your computer now. All data on the hard disk, including files, documents, pictures, programs, and settings might be lost if your hard disk fails. To determine if the hard disk needs to be repaired or replaced, contact the manufacturer of your computer. If you can't back up (for example, you have no CDs or other backup media), you should shut down your computer and restart when you have backup media available. In the meantime, do not save any critical files to this disk.

Статус Predictive Failure говорит о том, что одна из характеристик диска (например, механический износ) не соответствует эталонным значениям и велика вероятность отказа этого диска в будущем.

В этом случае рекомендуется выполнить резервное копирование данных с этого диска на отдельный носитель. Затем выполните проверку диска с помощью штатной SMART утилиты от производителя (или универсальными утилитами типа CrystalDiskInfo), проверьте носитель с помощью chkdsk.

Вы можете включить или отключить вывод этого сообщения пользователя с помощью специального параметра групповой политики Disk Diagnostic: Configure execution level в разделе GPO Administrative Templates -> System -> Troubleshooting and Diagnostics -> Disk Diagnostics.

групповая политика включить сообщения о диагностика дисков в windows и их здоровье через smart

Чаще всего для получения информации о состоянии дисков в Windows используют сторонни программы (например, CrystalDiskInfo, HDTune и т.д.). Такие программы, действительно позволяют получить много информации о дисках.

информация об SSD диске smart с помощью crystaldiskinfo

Например, я могу узнать оставшийся ресурс SSD. Текущее значение Total Host Writes – 507 Gb. Производитель гарантирует максимальный ресурс записи (TBW)для этой модели SSD 300 Тб. Значит диск изношен менее чем на 0.2%. Срок использования диска всего 108 часов.

Получение SMART параметров жесткого диска через WMI класс

В Windows вы можете получить доступ к данным SMART дисков с помощью встроенных средств.

Информацию о состоянии дисков компьютера можно посмотреть через панель управления Control Panel\System and Security\Security and Maintenance (в этом же разделе есть информацию о состоянии службы Windows Error Reporting).

В моем случае с дисками все ОК, т.к. в разделе Drive Status указано: OK, All drives are working properly .

информация о состоянии диска в windows

Как мы уже говорили выше, Windows собирает информацию SMART с дисков и позволяет получать к ней доступ через WMI.

В BIOS/UEFI для дисков должна быть включена поддержка SMART.

Откройте командную строку с правами администратора и выполните следующую команду чтобы получить состояние всех дисков:

wmic diskdrive get status

wmic diskdrive get status - получить информацию о здоровье дисков через WMI

В данном случае с дисками все хорошо. Если нет – будет статус bad, unknown или caution.

Если при обращении с WMI появляются ошибки, попробуйте восстановить WMI репозиторий.

Получить информацию о вероятном отказе жесткого диска можно через WMI класс MSStorageDriver_FailurePredictStatus:

wmic /namespace:\\root\wmi path MSStorageDriver_FailurePredictStatus

wmi класс MSStorageDriver_FailurePredictStatus

Если контроллер диска не видит проблем с диском, значение PredictFailure должно быть равно FALSE.

Этот же класс можно опросить с помощью PowerShell:

Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus

Если значение PredictFailure = True, обратите внимание на причину ошибки, код которой указывается в параметре Reason. Расшифровка кода ошибки PredictFailure зависит от вендора. Информацию по некоторым кодам ошибок можно найти в wiki (https://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._attributes).

Значения некоторых счетчиков надежности дисков можно получить с помощью следующего кода PowerShell:

Get-Disk | foreach { $_ | Get-StorageReliabilityCounter | Format-List }

Get-StorageReliabilityCounter информация о состоянии дисков в powershell

Можно вывести информацию только об определенных характеристиках:

Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object -Property DeviceID, Wear, ReadErrorsTotal, ReadErrorsCorrected, WriteErrorsTotal, WriteErrorsUncorrected, Temperature, TemperatureMax | FT

Также можно вывести общую информацию о дисках через Get-PhysicalDisk:

$(Get-PhysicalDisk | Select *)[0]

 Get-PhysicalDisk

Ранее мы показывали как с помощью Get-PhysicalDisk получить информацию о неисправном диске в Windows Server S2D и заменить его:

Get-PhysicalDisk | Where-Object {$_.HealthStatus -ne ‘Healthy’}

С помощью данных WMI классов и командлетов PowerShell можно настроить сбор данных о состоянии дисков на компьютерах пользователей для проактивного мониторинга. Можно создать алерты для вашей системы мониторинга (например, zabbix, nagios, icinga и т.д.), compliance отчет SCCM через Configuration Baseline для или PowerShell Desired State Configuration (DSC), опрашивать состояние SMART на удаленных компьютерах скриптом через PowerShell Remoting (командлет Invoke-Command) или использовать что-то свое.


Предыдущая статья Следующая статья


Комментариев: 10 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)