Windows无内置磁盘健康报表功能,但可通过Storage Health Service、PowerShell(Get-PhysicalDisk/Get-WmiObject/Get-NvmeSmartLog)及事件日志(ID 1100/141/155)组合获取并导出CSV/HTML报告。
windows 存储服务本身不直接提供“磁盘健康报表”这一独立功能,但可通过内置工具组合生成反映磁盘健康状态的结构化信息。关键在于利用 storage health service(存储健康服务)配合 powershell 和事件日志,而非依赖图形界面一键导出。
确认 Storage Health Service 是否启用并运行
该服务(名称为 Microsoft Storage Spaces Health Service)是 Windows Server 2016 及更新版本(含 Windows 11/10 专业版/企业版部分场景)中用于监控池化存储(如存储空间、群集共享卷)健康状态的核心组件。它默认仅在启用存储池或群集时自动启动。
- 打开 PowerShell(管理员权限),运行:
Get-Service VDS和Get-Service smphost—— 后者即 Storage Health Service 进程宿主 - 若服务状态为 Stopped,可尝试启动:
Start-Service smphost;但注意:若未配置存储池,启动后无实际数据上报 - 服务日志位于
Applications and Services Logs > Microsoft > Windows > StorageSpaces-Driver > Operational
用 PowerShell 获取磁盘物理健康数据(SMART)
对于直连 SATA/NVMe 磁盘(非存储池成员),系统不通过 Storage Health Service 报告 SMART 信息,需调用 WMI 或第三方驱动接口。Windows 原生支持有限,但可借助 Get-PhysicalDisk 和底层 WMI 类获取基础状态:
-
Get-PhysicalDisk | Select FriendlyName, HealthStatus, OperationalStatus, Usage—— 返回逻辑层健康摘要(依赖驱动支持) -
Get-WmiObject -Namespace root\wmi -Class MSStorageDriver_FailurePredictStatus—— 检查预测性故障标志(需驱动启用 SMART) - 注意:NVMe SSD 的 SMART 信息需通过
Get-NvmeSmartLog(PowerShell 7.3+ / Windows Server 2022+)获取,旧系统需安装厂商工具
导出结构化健康报表(CSV/HTML)
没有“一键报表”按钮,但可编写轻量脚本聚合关键字段生成可读报告:
- 示例命令(保存为 .ps1 文件后执行):
Get-PhysicalDisk | Select FriendlyName, MediaType, HealthStatus, OperationalStatus, Size, Usage | Export-Csv "disk_health_report.csv" -NoTypeInformation - 添加时间戳和来源主机:
$report = [PSCustomObject]@{Time = Get-Date; Host = $env:COMPUTERNAME; Disks = (Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus)} - 如需 HTML 格式,用
ConvertTo-Html替代Export-Csv,再重定向输出到文件
补充建议:结合事件日志与任务计划自动归档
存储健康事件(如磁盘预警、池降级)会写入 Windows 事件日志,这是比实时查询更可靠的长期依据:
- 筛选关键事件 ID:
• 1100(物理磁盘故障)
• 141(存储池警告)
• 155(物理磁盘预测失败) - 用
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-StorageSpaces-Driver/Operational'; ID=1100,141,155} -MaxEvents 100提取近期告警 - 将上述命令加入 Windows 任务计划,每日凌晨导出 CSV 并邮件发送,形成周期性健康简报


















