Windows 如何使用 PowerShell 统计 Windows 磁盘剩余容量

作者:袖梨 2026-08-07

最直接有效的方式是使用PowerShell内置cmdlet:新手推荐Get-PSDrive筛选FileSystem提供者;需精准查看固定磁盘用Get-Volume加DriveType过滤;脚本化推荐Get-CimInstance查询Win32_Volume;单盘查询可用Get-Volume -DriveLetter。

在 Windows 中用 PowerShell 查看磁盘剩余容量,最直接有效的方式是调用系统内置的 cmdlet 或 CIM 类,无需安装额外工具。重点不是“能不能查”,而是选对命令——不同命令适用场景略有差异:有的快、有的全、有的可脚本化、有的带类型过滤。

快速概览所有盘符(推荐新手)

运行这条命令,能立刻看到 C:、D: 等所有有盘符的本地驱动器及其可用空间:

Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name="Free(GB)";Expression={[math]::Round($_.Free/1GB,2)}}, @{Name="Used(GB)";Expression={[math]::Round($_.Used/1GB,2)}}, @{Name="Total(GB)";Expression={[math]::Round(($_.Used + $_.Free)/1GB,2)}}

  1. 输出简洁,单位统一为 GB,保留两位小数,一眼看清各盘还剩多少
  2. 自动排除注册表、证书等非文件系统驱动器,结果干净
  3. 普通用户权限即可执行,无需管理员身份

精准查看固定磁盘(含健康状态)

如果你关心的是物理硬盘上的“真实卷”(比如排除 U 盘、网络映射盘),用 Get-Volume 更可靠:

Get-Volume | Where-Object {$_.DriveType -eq 'Fixed'} | Select-Object DriveLetter, HealthStatus, @{Name="Free(GB)";Expression={[math]::Round($_.SizeRemaining/1GB,2)}}, @{Name="Total(GB)";Expression={[math]::Round($_.Size/1GB,2)}}

  1. 只显示本地固定磁盘(如 C:、D:),不会混入可移动设备
  2. 附带 HealthStatus(如 “Healthy”),便于判断是否异常
  3. SizeRemaining 是系统直接报告的剩余空间,比计算值更权威

获取原始字节值(适合脚本或兼容旧系统)

需要精确数值、或要在批处理/自动化中使用时,推荐 CIM 查询:

Get-CimInstance -ClassName Win32_Volume | Where-Object {$_.DriveType -eq 3 -and $_.DriveLetter} | Select-Object DriveLetter, @{Name="Free(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}, @{Name="Capacity(GB)";Expression={[math]::Round($_.Capacity/1GB,2)}}

  1. DriveType = 3 表示本地磁盘;加 -and $_.DriveLetter 过滤掉无盘符的系统保留分区
  2. 返回的是原始 WMI 数据,Windows 7 及以上均支持
  3. FreeSpace 和 Capacity 均为字节,可直接用于后续计算或日志记录

补充:一行命令查某盘(例如只看 C 盘)

如果只需确认一个盘,不必扫全盘,效率更高:

Get-Volume -DriveLetter C | Select-Object DriveLetter, @{Name="Free(GB)";Expression={[math]::Round($_.SizeRemaining/1GB,2)}}, @{Name="Used(GB)";Expression={[math]::Round(($_.Size - $_.SizeRemaining)/1GB,2)}}

  1. 响应极快,尤其适合写入监控脚本或快捷批处理
  2. 结果明确,不带干扰项
  3. 若提示“找不到卷”,说明 C: 盘未分配驱动器号或已脱机(少见但需排查)

相关文章

精彩推荐