2

我正在尝试使用 powershell 检索英特尔 PCH 温度。我找不到使用 wmi 检索此温度的任何方法。我机器上的芯片组是HM77。我试过阅读英特尔网站上提供的数据表,但没有成功。有谁知道如何做到这一点?

谢谢。

注意:我可以通过 HWINFO 应用程序读取这个 intel PCH 温度传感器,所以它可以通过某种方式完成。

4

3 回答 3

2

您可以使用此命令获取主板上所有传感器的当前温度

Get-WmiObject -Class Win32_PerfFormattedData_Counters_ThermalZoneInformation |Select-Object Name,Temperature

根据系统中可用的传感器,您的输出应该与此类似。

Name      Temperature
----      -----------
\_TZ.PCHZ         400
\_TZ.BATZ         273
\_TZ.LOCZ         334
\_TZ.EXTZ         327
\_TZ.GFXZ         335
\_TZ.CPUZ         337

已编辑(2016 年 4 月 30 日)

对于那些正在使用命令行并且可以使用的人

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

所有温度都以开尔文为单位,您可以轻松地将它们转换为 °C 或 °F

于 2016-04-28T13:17:37.410 回答
1

To use PowerShell, you would probably have to do it through WMI (i.e. @frikozoid's very good answer). Unfortunately it's not is possible to get the temperature reading through WMI. The MSDN documentation says

"Real-time readings for the CurrentReading property cannot be extracted from SMBIOS tables. For this reason, current implementations of WMI do not populate the CurrentReading property. The CurrentReading property's presence is reserved for future use."

:-(

The reasoning is that each mother board manufacturer has different ways of returning temperature values which would need motherboard specific dll's, etc....

The easiest tool I found for monitoring motherboard temperatures is SpeedFan. It supports almost every motherboard out there, and is pretty easy to use.

As for Temperature, you generally want your chipset to stay below 60 C. CPU temps could go up to 70C, as well as GPU's. In general if you can keep everything below 60C things will run very well for a long time. I know on my system if my GPU went above 70C, things started to get funky, and usually the system would crash.

---Edit---

It looks like you may be able to do part of that through SpeedFan. SpeedFan has a way to configure events (see: Configure Events) So you can set it to execute a script when your temperature hits a certain value.

于 2014-02-19T18:50:13.510 回答
1

我想我明白了。在 powershell 命令行中,我输入wmic并输入了“wmic:root\cli>”提示符。然后我输入temperature,它列出了所有传感器及其 DeviceID。在 CreationClassName 中显示“Win32_TemperatureProbe”。

现在你只需要找到正确的属性来读取 temp。他们在这里解释:Win32_TemperatureProbe class

PS 脚本列出所有具有值的属性:

$probes = Get-WmiObject -class Win32_TemperatureProbe
foreach($probe in $probes) {
    Write-Host $probe
    $probe | Format-List -Property *
}

我没有找到我的 MB 温度,因为我的主板上有两个传感器,我不知道哪个是哪个,而且我没有时间阅读文档,但这应该可以帮助您入门。

于 2014-02-19T17:26:13.267 回答