В настоящее время я работаю над NMS Zabbix. После некоторых НИОКР я могу получить информацию о температуре процессора в Linux через snmp, а также через терминал с использованием LM-SENSORS. Однако то же самое не работает для Windows; Я вижу, что в окнах нет LM-SENSORS, и, возможно, именно поэтому LM-SENSOR-MIB не дает никакого вывода для Windows. Кто-нибудь может подсказать, какие MIB можно использовать в Windows для получения информации о температуре процессора, а также, как я могу получить ту же информацию в терминале cmd?
1 ответ
2
Как узнать температуру процессора в оболочке cmd?
Попробуйте следующее.
Пакетный файл (GetCpuTmp.cmd)
@echo off for /f "skip=1 tokens=2 delims==" %%A in ('wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature /value') do set /a "HunDegCel=(%%~A*10)-27315" echo %HunDegCel:~0,-2%.%HunDegCel:~-2% Degrees Celsius
Исходный Batch-файл получает температуру процессора в ° C и устанавливается как переменную, отвечает Дэвид Руман
Пример вывода:
> GetCpuTemp.cmd
73.05 Degrees Celsius
Функция PowerShell (get-temperature.psm1)
function Get-Temperature {
$t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$currentTempKelvin = $t.CurrentTemperature / 10
$currentTempCelsius = $currentTempKelvin - 273.15
$currentTempFahrenheit = (9/5) * $currentTempCelsius + 32
return $currentTempCelsius.ToString() + " C : " + $currentTempFahrenheit.ToString() + " F : " + $currentTempKelvin + "K"
}
# Save in your c:\users\yourName\Documents\WindowsPowerShell\modules\ directory
# in sub directory get-temperature as get-temperature.psm1
# You **must** run as Administrator.
# It will only work if your system & BIOS support it. If it doesn't work, I can't help you.
# Just type get-temperature in PowerShell and it will spit back the temp in Celsius, Farenheit and Kelvin.
Источник получить температуру процессора с PowerShell
Пример вывода:
> get-temperature
73.05 C : 163.49 F : 346.2K