可通过PowerShell的Get-StoragePool等cmdlet获取存储池完整配置快照,包括健康状态、冗余类型、物理磁盘关联及虚拟磁盘依赖;支持远程采集、结构化导出(XML/JSON)和带时间戳HTML报告生成。
可以通过 powershell 的 get-storagepool 和相关 cmdlet 获取存储池的完整配置快照,包括健康状态、冗余类型、物理磁盘关联、虚拟磁盘依赖等关键信息。
获取基础存储池列表及核心属性
运行以下命令可快速列出所有存储池及其基本配置:
Get-StoragePool | Select-Object FriendlyName, OperationalStatus, HealthStatus, IsPrimordial, ProvisioningType, ResiliencySettingNameDefault- 其中
IsPrimordial为True表示系统默认的“原始池”,通常不用于部署虚拟磁盘;ProvisioningType显示是“Fixed”还是“Thin”供给模式 - 添加
-CimSession参数可远程采集(需启用 WinRM 并有权限)
导出完整配置快照(含物理磁盘与虚拟磁盘关系)
单条命令无法覆盖全部上下文,建议组合导出结构化快照:
- 先保存池对象:
$Pools = Get-StoragePool -ErrorAction SilentlyContinue - 对每个池获取关联的物理磁盘:
$Pool | Get-PhysicalDisk | Select-Object FriendlyName, MediaType, CanPool, OperationalStatus - 获取该池上所有虚拟磁盘:
$Pool | Get-VirtualDisk | Select-Object FriendlyName, ResiliencySettingName, NumberOfColumns, Interleave, HealthStatus - 用
Export-Clixml或ConvertTo-Json -Depth 10保存完整对象树,便于后续比对或审计
一键生成带时间戳的快照报告
执行以下脚本可生成含时间信息的本地 HTML 报告:
$Now = Get-Date -Format "yyyyMMdd-HHmmss"Get-StoragePool | ForEach-Object {<br> $Pool = $_<br> $VDs = $Pool | Get-VirtualDisk<br> $PDs = $Pool | Get-PhysicalDisk<br>  >[PSCustomObject]@{<br> PoolName = $Pool.FriendlyName<br> Health = $Pool.HealthStatus<br> VirtualDisks = ($VDs.FriendlyName -join '; ')<br> PhysicalDisks = ($PDs.FriendlyName -join '; ')<br> }<br>} | ConvertTo-Html | Out-File ".\StoragePool-Snapshot-$Now.html"
注意事项与常见问题
部分配置需管理员权限或特定角色才能读取:
- 若返回空结果,请确认已加载 Storage模块:
Import-Module Storage -Force - 群集环境请改用
Get-ClusterStoragePool(需 FailoverClusters 模块) - 第三方存储(如 Dell PERC、HP Smart Array)不支持 Windows 存储池 cmdlet,需使用厂商工具
- 快照不含性能计数器或历史事件,如需长期监控,建议配合
Get-StorageSubSystem和事件日志分析

















