PowerShell无法直接读取温度,因Windows未提供通用API访问硬件传感器,WMI类Win32_TemperatureProbe在Win10/11中基本失效;需依赖Open Hardware Monitor、HWiNFO64或Core Temp等第三方工具配合调用。
powershell 本身不直接支持系统热量监控,因为 windows 操作系统没有向 powershell 暴露标准的温度传感器接口,bios/uefi 层的 cpu、gpu 或主板温度数据通常不通过 windows 管理规范(wmi)或性能计数器公开。
为什么 PowerShell 无法直接读取温度
Windows 不提供通用、稳定、厂商无关的 API 获取硬件温度。多数温度信息由主板厂商通过私有驱动或嵌入式控制器(EC)管理,仅部分品牌(如 Dell、HP、Lenovo)在配套管理工具中开放有限 WMI 类;普通消费级设备基本无此支持。
常见误区:Get-WmiObject Win32_TemperatureProbe 已被证实在绝大多数现代 Windows 系统中返回空或无效数据,该类在 Windows 10/11 中基本不可用,不应依赖。
可行的替代方案(需配合外部工具)
若你确实需要在 PowerShell 环境中获取温度数据,必须借助第三方命令行工具,并由 PowerShell 调用其输出:
-
Open Hardware Monitor CLI(推荐):开源免费,支持多平台传感器,提供 Portable 版本。下载后解压,使用 PowerShell 执行:
& ".\OpenHardwareMonitorReport.exe" -r "C:\temp\temp.json",再用Get-Content C:\temp\temp.json | ConvertFrom-Json解析。 -
HWiNFO64(Sensors Only 模式):运行
HWiNFO64.exe /SENSORS /LOGFILE="C:\temp\hwinfo.csv" /CLOSE,PowerShell 可后续读取 CSV 提取温度字段(如 "CPU Core #0 Temperature")。 -
Core Temp CLI(限 Intel/AMD CPU):需安装 Core Temp 并启用“CLI Server”,PowerShell 可用
Invoke-RestMethod http://127.0.0.1:9932获取 JSON 数据(需提前配置服务端口)。
注意事项与限制
所有上述方法都依赖硬件兼容性与驱动支持**:笔记本、迷你主机、部分 OEM 台式机可能因 BIOS 锁定或缺少传感器驱动而完全无温度读数。
PowerShell 无管理员权限时,多数传感器工具将无法访问底层硬件寄存器,务必以管理员身份运行终端。
不要尝试用 Get-Counter 或 WMI 查询温度——这不是功能缺失,而是设计上不存在该数据通路。

















