[Powershell] 无需安装软件,通过命令行监控 CPU 温度
本帖最后由 方正好强 于 2020-12-2 12:19 编辑新人,初临宝地。如有违规问题,还请管理同学指正,万分感谢!
有小伙伴们在评论中回复到“这个方法没用,不对”,看看他们的方法。我对这方面也一知半解。
我们知道 Windows 电脑没有监控 CPU 温度的功能,如果想知道 CPU 温度需要安装软件,比如鲁大师。
那么是否可以不安装软件,就实现 CPU 的温度监控呢?
有的!经查询资料,找到了方法。
废话不多说,见代码:
function Get-Temperature {
$t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$returntemp = @()
foreach ($temp in $t.CurrentTemperature)
{
$currentTempKelvin = $temp/10
$currentTempCelsius = $currentTempKelvin - 273.15
$currentTempFahrenheit = (9/5) * $currentTempCelsius + 32
$returntemp += $currentTempCelsius.ToString() + " C : " + $currentTempFahrenheit.ToString() + " F : " + $currentTempKelvin + "K"
}
return $returntemp
}
Get-Temperature
如果需要继续查看:输入 Get-Temperature 并回车即可。
如果喜欢,请支持。 WMI可以取得ACPI定义中的Thermal Zone中的_TMP的温度内容,但是这个不是cpu的温度,而是主板温区的温度,而且CPU的温度应该直接访问寄存器得到。但软件都在ring3上,要读取寄存器的内容,需要通过ring 0的驱动程序,这个很简单,像鲁大师等软件为了访问底层信息都有驱动程序配套。难点是这些信息有些是MSR,有些在PCI配置空间中,需要根据CPU型号进行判断。所以楼主这个代码并不准确,正确方法应该是驱动然后读取。 https://stackoverflow.com/questions/39738494/get-cpu-temperature-in-cmd-power-shell你是看的这篇吧,下面回复你仔细看下,这个不是cpu温度 太厲害了吧 这技术可以啊 试了一下,楼主的方法还真神奇,感谢 电脑里有温度传感器吗?为什么能检测温度 梦入神机 发表于 2020-12-2 08:13
电脑里有温度传感器吗?为什么能检测温度
应该有吧要不怎么设置温度墙呢高温降频什么的 膜拜大神,原来BAT也能这样玩。 代码贴出来吧 获得新方法, 谢谢分享 感谢楼主分享