windows可通过powershell查询磁盘健康状态,但温度与健康数据能否获取取决于硬件是否上报s.m.a.r.t.信息及驱动是否正确识别;get-physicaldisk仅显示healthstatus等基础状态,不直接输出温度,需结合系统设置、wmi或厂商接口获取温度与深度健康指标。
windows 可以直接用 powershell 查询硬件健康状态和磁盘温度,但要注意:不是所有硬盘都支持返回温度或健康数据,是否能查到,取决于硬件本身是否向系统上报 s.m.a.r.t. 信息,以及 windows 是否通过驱动正确识别。
查看物理磁盘基础健康与温度(原生支持)
运行以下命令,获取已识别的物理磁盘及其健康状态、介质类型、使用情况等:
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus, Usage
-
HealthStatus显示Healthy、Unhealthy或Unknown -
OperationalStatus为OK表示在线可用 - 若
HealthStatus是Unknown,多数是因为 RAID 卡未启用 SMART 透传,或 SSD 固件未开放健康字段
部分 NVMe/SATA SSD 支持温度字段,但 Get-PhysicalDisk 不直接输出温度值。要查温度,需换用其他方式。
获取磁盘温度(多种路径,按优先级推荐)
✅ 方法一:通过系统设置界面(最稳妥,无需命令)
Windows 11/10 设置中已内置温度读取功能(依赖 SSD 固件暴露 S.M.A.R.T. ID C2):
- 打开「设置」→「系统」→「存储」→「高级存储设置」→「磁盘和卷」
- 点击目标 SSD →「属性」→ 滚动到「驱动器运行状况」区域
- 若显示温度数值(单位 ℃),说明固件已上报,系统可读
注意:该温度来自 SSD 主控传感器,比第三方工具更贴近真实工作温度。
✅ 方法二:PowerShell + WMI 获取原始温度(适用于部分平台)
某些主板/SSD 支持通过 ACPI 热区读取温度(单位为开尔文,需换算):
$thermal = Get-CimInstance -Namespace "root/wmi" -ClassName MSAcpi_ThermalZoneTemperature -ErrorAction SilentlyContinue
if ($thermal) {
$tempKelvin = $thermal.CurrentTemperature
$tempCelsius = [math]::Round($tempKelvin / 10 - 273.15, 1)
Write-Host "当前温度: ${tempCelsius}°C"
}
- 此方法不一定返回 SSD 温度,而是主板热区温度(如 CPU 区域或主控附近)
- 多数消费级 NVMe SSD 不走此路径,结果可能为空或偏差较大
✅ 方法三:使用 Get-StorageReliabilityCounter 辅助判断老化趋势
虽然不提供实时温度,但它能返回关键寿命指标,间接反映健康状态:
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object FriendlyName, TotalPowerOnHours, ReadErrorsCorrected, WriteErrorsCorrected, MediaErrors
-
TotalPowerOnHours:通电总时长,SSD 超过 15000 小时需关注 -
MediaErrors非零值表示存在不可恢复读写错误,属严重预警信号
针对 RAID 阵列或企业级控制器(如 Dell PERC、HPE Smart Array)
原生命令无法直接读取硬件 RAID 的盘温,但可通过厂商 WMI 接口获取健康状态:
-
Dell 服务器(已安装 OpenManage):
Get-WmiObject -Namespace "root\dcim\sysman" -Class DCIM_PhysicalDiskView | Select-Object Name, State, HealthState, PredictiveFailure
-
通用预测性故障检测(部分控制器支持):
Get-CimInstance -Namespace "root\wmi" -ClassName MSStorageDriver_FailurePredictStatus -ErrorAction SilentlyContinue | Where-Object {$_.FailurePredicted -eq $true} | Select-Object InstanceName, FailurePredicted
⚠️ 提示:若返回空结果,说明控制器未安装对应 WMI 提供程序,或 BIOS 中未开启 “Predictive Failure Analysis”。
小结:什么情况下能查到温度?什么情况下查不到?
- ✅ 能查到:NVMe/SATA SSD 固件开放了 S.M.A.R.T. 温度字段(ID C2),且 Windows 存储驱动正常加载
- ❌ 查不到常见原因:
- RAID 卡关闭 SMART 透传(需进 BIOS 或 MegaRAID/Dell PERC 工具开启)
- USB 移动硬盘盒、雷电拓展坞中的 SSD 通常被屏蔽 S.M.A.R.T.
- 某些 OEM 厂商定制固件禁用了温度上报(如部分联想/戴尔预装 SSD)
不复杂但容易忽略











