Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Что из себя представляет класс MSStorageDriver_ATAPISmartData? Запускаем обозрезатель WMI и видим:
Код: Выделить весь код
MSStorageDriver_ATAPISmartData
----------------------------------------------------------------------------------------------------
Данные ATAPI SMART

...

VendorSpecific(Type: UInt8, Local: True, Array: True)
Данные предсказания ошибок, от производителя

...
То есть, в VendorSpecific хранятся данные S.M.A.R.T. как то, например, температура HDD, которая по идее должна вычисляться примерно так:
Код: Выделить весь код
@echo off
  setlocal
    set "wmi=wmic /namespace:\\root\wmi path"
    set "wmi=%wmi% MSStorageDriver_ATAPISmartData"
    set "wmi=%wmi% get VendorSpecific /value"
    for /f "tokens=2 delims=}{" %%i in ('%wmi%') do (
      set "smart=%%i"
    )
    rem 151 байт для WinXP, 127 - Win7
    call:getbyte 127 %smart%
  endlocal
exit /b

:getbyte
  for /l %%i in (1, 1, %1) do shift
  echo:HDD temperature: %2C
exit /b
Что же касается скорости вращения, если Вы конечно не подразумеваете под ней раскрутку шпинделя, то здесь Вы ее не найдете. Для этого Вам придется прибегруть либо к счетчикам производительности, вычисляя соотношение обмена данных с диском из значения, получаемого через:
Код: Выделить весь код
typeperf "\Физический диск(_Total)\Скорость обмена с диском (байт/сек)"
либо обратиться к WinAPI, конкретно - DeviceIoControl (или комбинации NTAPI'шных функций, как NtQuerySystemInformation, NtDeviceIoControlFile и т.д.).

Последний раз редактировалось greg zakharov, 28-02-2017 в 20:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:41, 27-02-2017 | #2