Get-Volume 是什么
Get-Volume 一条命令列出所有卷的盘符、文件系统、总容量与剩余空间,批量巡检比在资源管理器里逐盘查看快得多。盘符为空表示这个卷没有分配盘符,可能是挂载到了文件夹,也可能是尚未分配。
基本信息
| 适用平台 | Windows PowerShell 5.1 与 PowerShell 7(存储模块) |
|---|---|
| 语法 | Get-Volume [-DriveLetter C] [-FileSystemLabel 卷标] |
| 关键字段 | DriveLetter、FileSystemLabel、FileSystem、Size、SizeRemaining、HealthStatus |
| 无盘符情形 | 挂载到 NTFS 文件夹、系统保留分区、未分配盘符的卷 |
| 相关命令 | Get-Partition 查看分区、Get-Disk 查看物理磁盘 |
| 权限要求 | 查看一般无需管理员,个别卷的信息可能受限 |
典型使用场景
- 巡检所有卷的剩余空间,快速找出需要清理的盘符
- 写监控脚本时按剩余比例判断并触发告警
- 确认某个卷的文件系统类型是否满足使用需求
- 排查盘不见了:确认卷是否只是丢了盘符
- 新建或扩容之后核对容量是否符合预期
常用示例
常用示例
# 列出所有卷的容量与剩余空间
Get-Volume | Sort-Object DriveLetter | Format-Table DriveLetter, FileSystemLabel, FileSystem, @{n='SizeGB';e={[math]::Round($_.Size/1GB,1)}}, @{n='FreeGB';e={[math]::Round($_.SizeRemaining/1GB,1)}}
# 查看单个盘符
Get-Volume -DriveLetter C
# 找出剩余空间不足两成的卷
Get-Volume | Where-Object { $_.Size -and ($_.SizeRemaining / $_.Size) -lt 0.2 } | Select-Object DriveLetter, FileSystemLabel, @{n='FreePercent';e={[math]::Round($_.SizeRemaining/$_.Size*100)}}
# 查看没有盘符的卷
Get-Volume | Where-Object { -not $_.DriveLetter } | Select-Object FileSystemLabel, FileSystem, Size字段读法
| 字段 | 含义 | 要留意 |
|---|---|---|
| DriveLetter | 卷的盘符 | 为空可能是挂载到文件夹或未分配 |
| FileSystem | NTFS、ReFS、FAT32 等 | FAT32 不支持权限与超大单文件 |
| Size | 卷的总容量 | 与预期不符时检查分区是否完整 |
| SizeRemaining | 当前剩余空间 | 瞬时值,做阈值告警要留波动余量 |
| HealthStatus | 卷的健康状态 | 异常时结合磁盘状态与文件系统日志 |
挂载到 NTFS 文件夹的卷没有盘符,盘符为空并不代表盘丢了。先看卷标与容量,再用分区命令确认它的挂载位置。
剩余空间是瞬时值。做阈值告警要留出波动余量,例如写入高峰期间日志快速增长,几分钟内就可能从充裕变成告警。