最直接有效的方式是使用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)}}
- 输出简洁,单位统一为 GB,保留两位小数,一眼看清各盘还剩多少
- 自动排除注册表、证书等非文件系统驱动器,结果干净
- 普通用户权限即可执行,无需管理员身份
精准查看固定磁盘(含健康状态)
如果你关心的是物理硬盘上的“真实卷”(比如排除 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)}}
- 只显示本地固定磁盘(如 C:、D:),不会混入可移动设备
- 附带 HealthStatus(如 “Healthy”),便于判断是否异常
- 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)}}
- DriveType = 3 表示本地磁盘;加
-and $_.DriveLetter过滤掉无盘符的系统保留分区 - 返回的是原始 WMI 数据,Windows 7 及以上均支持
- 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)}}
- 响应极快,尤其适合写入监控脚本或快捷批处理
- 结果明确,不带干扰项
- 若提示“找不到卷”,说明 C: 盘未分配驱动器号或已脱机(少见但需排查)











