web-dev-qa-db-ja.com

Snmpとcmdの両方を使用してWindowsシステムのCPU温度を取得する方法

現在、NMS Zabbixに取り組んでいます。いくつかの研究開発の後、LM-SENSORSを使用して、ターミナルだけでなくsnmpを介してLinuxのCPU温度情報を取得できます。ただし、これはWindowsでは機能しません。 WindowsにはLM-SENSORSがないのがわかります。それが、LM-SENSOR-MIBがWindowsに出力を提供しない理由かもしれません。 Windowsでどのmibを使用してCPU温度情報を取得できるかを提案することはできますか?また、cmdターミナルで同じ情報を取得するにはどうすればよいですか?

1
gadhvi

コマンドシェルでCPU温度を取得するにはどうすればよいですか?

以下を試してください。

バッチファイル(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

ソース バッチファイルはCPU温度を°Cで取得し、変数として設定David Ruhmann で回答

出力例:

> 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でCPU温度を取得

出力例:

> get-temperature
73.05 C : 163.49 F : 346.2K
4
DavidPostill