Найти тему

Мониторинг температуры процессора стандартными средствами Windows (WMI)

5,5K прочитали

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

Теперь пришло время рассказать о получении данных о температуре процессора с помощью командной строки.

Вариантов команд получить температуру с помощью CMD несколько и все сводятся к считыванию свойств классов WMI, относящихся к измерению температуры:

wmic temperature get CurrentReading

wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature

wmic /namespace:\\root\wmi PATH Win32_TemperatureProbe get CurrentReading

wmic /namespace:\\root\cimv2 PATH Win32_PerfFormattedData_Counters_ThermalZoneInformation get Temperature

Какие-то из команд могут не сработать
Какие-то из команд могут не сработать

Есть еще одна команда получения температуры, через PowerShell:

gwmi MSAcpi_ThermalZoneTemperature -namespace "root/wmi"

Нам интересно свойство CurrentTemperature
Нам интересно свойство CurrentTemperature

Не стоит пугаться температуры больше 3000 градусов.

Температура записана в Кельвинах и, в некоторых случаях, умножена на 10, потому что шине удобнее работать с целыми числами без запятой.

Если число четырехзначное, надо вычесть из него 2732 и разделить на 10:

t = (3302-2732) = 57° C

Если трехзначное, нужно просто вычесть из него 273:

t =331-273 = 58° C

Может случиться так, что ни одна команда ничего не покажет:

Видим фразу Not supported или Not found, значит, производитель материнской платы не стал делать поддержку WMI.

У классов WMI, связанных с хранением данных о температуре, попросту нет доступа к датчикам. В таком случае придется ставить стороннее ПО для считывания данных с датчиков.

Кстати, про такое ПО у меня тоже есть статья :)