Возвращаясь к мониторингу температуры решил я попробовать измерить сие напрямую через Powershell. Тем более что в Powershell для этого есть класс MSAcpi_ThermalZoneTemperature.
Код функции Get-Temperature гуляет по сети не первый год:
function Get-Temperature {
$t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$returntemp = @()
foreach ($i in 0..($t.Count - 1)) {
$temperatureInstance = $t[$i]
$currentTempKelvin = $temperatureInstance.CurrentTemperature / 10
$currentTempCelsius = $currentTempKelvin - 273.15
$currentTempCelsius = [math]::Round($currentTempCelsius, 2)
$currentTempFahrenheit = (9/5) * $currentTempCelsius + 32
$instanceName = $temperatureInstance.InstanceName
$returntemp += "$instanceName : $currentTempCelsius C"
}
return $returntemp
}
Get-Temperature
А вот и ее вывод:
Что-то я сомневаюсь в правдивости таких данных. Берем для сравнения данные по температуре CPU из утилиты AIDA и HWMonitor. Как видите разница есть, более того вывод функции Get-Temperature не меняется во времени, что как минимум странно.
Что еще? Оказалось что в Windows 11 вызов Get-WMIObject уже не поддерживается. Как все печально, придется оставаться на использовании утилиты OpenHardwareMonitorReport для измерения показателей температуры на лету в Zabbix, а так хотелось все сделать красиво.
Такие дела.
No comments:
Post a Comment
А что вы думаете по этому поводу?