如何用PowerShell获取NTFS文件夹挂载的无盘符驱动器相关信息?
PowerShell 查询无盘符NTFS挂载点驱动器信息
核心查询命令
方案1:使用内置Volume cmdlet(输出最贴近Get-PSDrive)
直接执行以下命令即可获取所有未分配盘符、挂载到NTFS文件夹的驱动器信息,包含可用空间、总大小等字段:
Get-Volume | Where-Object { $_.DriveLetter -eq $null -and $_.Path -ne $null } | Select-Object Path, FileSystemLabel, FileSystem, Size, SizeRemaining
字段说明:
Path:驱动器对应的NTFS挂载路径Size:驱动器总容量(单位字节)SizeRemaining:驱动器可用空间(单位字节)FileSystemLabel:卷标,FileSystem为文件系统格式
方案2:输出格式完全对齐Get-PSDrive
如果需要和Get-PSDrive的输出结构完全一致,方便后续统一处理,使用以下自定义输出代码:
Get-Volume | Where-Object { $_.DriveLetter -eq $null -and $_.Path -ne $null } | ForEach-Object { [PSCustomObject]@{ Name = $_.Path.TrimEnd('\') Provider = 'Microsoft.PowerShell.Core\FileSystem' Root = $_.Path CurrentLocation = '' Free = $_.SizeRemaining Used = $_.Size - $_.SizeRemaining Description = $_.FileSystemLabel } }
输出结果和Get-PSDrive -PSProvider FileSystem的字段完全匹配,可直接替换原有Get-PSDrive的逻辑。
方案3:WMI兼容方案(适用于旧版本PowerShell)
如果运行环境是PowerShell 5.1以下的旧版本,可调用WMI接口查询:
Get-CimInstance Win32_Volume | Where-Object { $null -eq $_.DriveLetter -and $_.Name -match '^[A-Z]:\\.+' } | Select-Object @{Name='Path';Expression={$_.Name}}, @{Name='FileSystemLabel';Expression={$_.Label}}, FileSystem, @{Name='Size';Expression={$_.Capacity}}, @{Name='SizeRemaining';Expression={$_.FreeSpace}}
注意事项
- 普通用户权限即可运行上述命令,无需管理员权限
- 若查询到的容量字段为空,检查当前账号是否有对应NTFS挂载路径的读取权限
- 如需筛选特定目录下的挂载点,可在
Where-Object过滤条件中添加路径匹配规则,例如仅查询C:\mnt目录下的挂载点:$_.Path -like 'C:\mnt\*'
内容的提问来源于stack exchange,提问作者as123
相关产品推荐
相关产品推荐

