我们如何通过WMI获得CPU温度?

时间:2017-08-17 13:17:25

标签: wmi cpu

我从here安装了WMI代码创建程序,我想知道如何使用它来获取CPU温度。

应用程序提供了许多选项(如下所示),但我不确定在哪里必须单击才能获得CPU温度。

enter image description here

我转到了WMI代码创建者的描述并看到了以下内容:

  

WMI Code Creator工具允许您生成VBScript,C#和VB   使用WMI完成管理任务(如查询)的.NET代码   用于管理数据,从WMI类执行方法或接收   使用WMI的事件通知。

4 个答案:

答案 0 :(得分:4)

命名空间:root\wmi
路径:MSAcpi_ThermalZoneTemperature

要从Windows命令行(wmic)运行此命令(使用cmd.exe),命令将为:

wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CriticalTripPoint, CurrentTemperature

注意:结果位于Kelvin * 10,因此您需要将结果除以10,然后减去273.15以获得摄氏度。

更多信息:

答案 1 :(得分:0)

我的HP笔记本电脑具有HP特定的WMI对象,其中包含以摄氏度为单位的温度和风扇RPM速度对象。 在管理员模式下运行此WMIC命令将检索它们:

wmic /NAMESPACE:\\root\HP\InstrumentedBIOS path HPBIOS_BIOSNumericSensor get Name,CurrentReading

添加用于每5秒循环一次的语法:

FOR /L %G IN (1,1,100) DO wmic /NAMESPACE:\\root\HP\InstrumentedBIOS path HPBIOS_BIOSNumericSensor get Name,CurrentReading && PING localhost -l 0 -n 5 >NUL

答案 2 :(得分:0)

对于那些寻求PowerShell解决方案的人:

Get-CimInstance -Namespace root/wmi -ClassName MsAcpi_ThermalZoneTemperature -Filter "Active='True' and CurrentTemperature<>2732" -Property InstanceName, CurrentTemperature |
    Select-Object InstanceName, @{n='CurrentTemperatureC';e={'{0:n0} C' -f (($_.CurrentTemperature - 2732) / 10.0)}}

此处的WMI / CIM过滤器仅查找不会返回0 C作为温度的有源传感器。我的系统返回了多个具有该值的传感器,并且我假设它们只是被禁用或无法正常工作。 InstanceName属性应使您大致了解传感器的位置。在我的系统中,即使该属性的精度应为K度的十分之一,但它始终以整数度报告,并且似乎将-273.15 C的绝对零值舍入为-273.2。其他系统或传感器可能会有所不同。

请注意,您必须是管理员才能查询MsAcpi_ThermalZoneTemperature类。

答案 3 :(得分:0)

在我的戴尔笔记本电脑上,我可以像这样获得以摄氏度为单位的 CPU 温度:

$data = Get-WMIObject -Query "SELECT * FROM Win32_PerfFormattedData_Counters_ThermalZoneInformation" -Namespace "root/CIMV2"
@($data)[0].HighPrecisionTemperature
相关问题