使用Powershell检索英特尔PCH温度

使用Powershell检索英特尔PCH温度,powershell,wmi,intel,sensors,pch,Powershell,Wmi,Intel,Sensors,Pch,我正在尝试使用powershell检索英特尔PCH温度。我找不到使用wmi检索此温度的任何方法。我机器上的芯片组是HM77。我试着通读英特尔网站上提供的数据表,但没有成功。有人知道怎么做吗 谢谢 注意:我可以通过HWINFO应用程序读取此intel PCH温度传感器,因此可以通过某种方式进行读取。我想我已经获得了它。在powershell命令行中,我键入了wmic,并输入了“wmic:root\cli>”提示符。然后我输入了温度,它列出了所有传感器及其设备ID。CreationClassName

我正在尝试使用powershell检索英特尔PCH温度。我找不到使用wmi检索此温度的任何方法。我机器上的芯片组是HM77。我试着通读英特尔网站上提供的数据表,但没有成功。有人知道怎么做吗

谢谢


注意:我可以通过HWINFO应用程序读取此intel PCH温度传感器,因此可以通过某种方式进行读取。

我想我已经获得了它。在powershell命令行中,我键入了
wmic
,并输入了“wmic:root\cli>”提示符。然后我输入了
温度
,它列出了所有传感器及其设备ID。CreationClassName中写着“Win32_TemperatureProbe”

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

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

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

我没有找到我的MB温度,因为我的主板上有两个传感器,我不知道哪个是哪个,我也没有时间阅读文档,但这应该可以让你开始了。

我想我知道了。在powershell命令行中,我键入了
wmic
,并输入了“wmic:root\cli>”提示符。然后我输入了
温度
,它列出了所有传感器及其设备ID。CreationClassName中写着“Win32_TemperatureProbe”

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

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

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

我没有找到我的MB temp,因为我的主板上有两个传感器,我不知道哪个是哪个,我没有时间阅读文档,但这应该可以让你开始了。

要使用PowerShell,你可能必须通过WMI(即@frikozoid的回答非常好)。不幸的是,无法通过WMI获取温度读数。MSDN文档中说

“无法读取CurrentReading属性的实时读数 从SMBIOS表中提取。因此,当前的实现 WMI的不填充CurrentReading属性。CurrentReading属性 财产的存在保留供将来使用。”

:-(

原因是,每个主板制造商都有不同的返回温度值的方法,这需要主板特定的dll,等等

我发现的最简单的监控主板温度的工具是。它支持几乎所有的主板,而且非常容易使用

至于温度,您通常希望您的芯片组保持在60摄氏度以下。CPU温度可能会高达70摄氏度,GPU温度也可能会高达70摄氏度。一般来说,如果您能将所有温度保持在60摄氏度以下,系统将可以长时间运行。我知道,在我的系统上,如果我的GPU温度高于70摄氏度,系统会开始变得不正常,通常系统会崩溃

---编辑---


看起来您可以通过SpeedFan完成部分工作。SpeedFan有一种配置事件的方法(请参阅:),这样您就可以将其设置为在温度达到某个特定值时执行脚本。

要使用PowerShell,您可能必须通过WMI来完成(即@frikozoid的非常好的答案)。不幸的是,无法通过WMI获取温度读数。MSDN文档中说

“无法读取CurrentReading属性的实时读数 从SMBIOS表中提取。因此,当前的实现 WMI的不填充CurrentReading属性。CurrentReading属性 财产的存在保留供将来使用。”

:-(

原因是,每个主板制造商都有不同的返回温度值的方法,这需要主板特定的dll,等等

我发现的最简单的监控主板温度的工具是。它支持几乎所有的主板,而且非常容易使用

至于温度,您通常希望您的芯片组保持在60摄氏度以下。CPU温度可能会高达70摄氏度,GPU温度也可能会高达70摄氏度。一般来说,如果您能将所有温度保持在60摄氏度以下,系统将可以长时间运行。我知道,在我的系统上,如果我的GPU温度高于70摄氏度,系统会开始变得不正常,通常系统会崩溃

---编辑---


看起来您可以通过SpeedFan完成部分工作。SpeedFan有一种配置事件的方法(请参阅:),这样您可以将其设置为在温度达到某个特定值时执行脚本。

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

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

所有温度均以开尔文为单位。您可以轻松地将其转换为摄氏度或华氏度。您可以使用此命令获取主板上所有传感器的当前温度

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

也可以在侧注上-有人知道hm77芯片组可以达到并保持在没有任何物理损坏的大致温度吗?还有一个侧注-有人知道hm77芯片组可以达到并保持在没有任何物理损坏的大致温度吗?我不这么认为这可以通过WMI实现。MSDN文档说明“无法从SMBIOS表中提取CurrentReading属性的实时读数。因此,WMI的当前实现不填充CurrentReading属性。CurrentReading属性的存在保留供将来使用。”:-(@HAL9256你说得对,我在网站上发布的第一句话是:)。糟糕。好吧,让我们等待未来的发布。是的,我也读到了,就像是“温度预测,甜心!”…哦,等等…“未来发布”…啊,哦,胡说八道。除此之外,你发布了一个很棒的答案,有很好的文档记录,参考