我从here安装了WMI代码创建程序,我想知道如何使用它来获取CPU温度。
应用程序提供了许多选项(如下所示),但我不确定在哪里必须单击才能获得CPU温度。
我转到了WMI代码创建者的描述并看到了以下内容:
WMI Code Creator工具允许您生成VBScript,C#和VB 使用WMI完成管理任务(如查询)的.NET代码 用于管理数据,从WMI类执行方法或接收 使用WMI的事件通知。
答案 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以获得摄氏度。
WUtils.com:MSAcpi_ThermalZoneTemperature
Properties
答案 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