You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell获取已挂载VHD的驱动器号?

解决PowerShell获取已挂载VHD驱动器号的问题

嘿,别担心,Get-DiskImage其实完全支持VHD/VHDX文件,你遇到的错误大概率是命令执行时的小细节问题。我给你几个可靠的解决方案:

方法一:修正原命令的过滤逻辑

你的原命令没有过滤掉无驱动器号的分区(比如系统预留分区),加上路径格式建议用反斜杠,调整后命令如下:

# 获取已挂载VHD的驱动器号
(Get-DiskImage -ImagePath "D:\tmp.vhdx" | Get-Disk | Get-Partition | Where-Object { $_.DriveLetter }) | Select-Object -ExpandProperty DriveLetter
  • Where-Object { $_.DriveLetter } 会过滤掉没有分配驱动器号的分区,避免无效数据干扰
  • 用Select-Object -ExpandProperty直接输出纯驱动器号(比如E:),而不是带属性的对象

方法二:通过磁盘的Location属性定位VHD

如果第一种方法还是有问题,可以直接通过磁盘的Location属性匹配VHD路径,这种方式更稳定:

Get-Disk | Where-Object { $_.Location -eq "D:\tmp.vhdx" } | Get-Partition | Where-Object { $_.DriveLetter } | Select-Object -ExpandProperty DriveLetter

挂载后的VHD对应的磁盘,其Location属性就是VHD文件的完整路径,通过这个可以精准定位目标磁盘。

方法三:挂载时直接获取结果

如果你是刚执行完Mount-VHD命令,可以直接用-PassThru参数返回镜像对象,一步到位获取驱动器号:

# 挂载VHD并立即获取驱动器号
Mount-VHD -Path "D:\tmp.vhdx" -PassThru | Get-Disk | Get-Partition | Where-Object { $_.DriveLetter } | Select-Object -ExpandProperty DriveLetter

-PassThru参数会让Mount-VHD返回对应的DiskImage对象,省去后续再次调用Get-DiskImage的步骤。

关于你遇到的错误

你提到的Get-DiskImage : Invalid property错误,大概率是以下原因之一:

  • 路径格式错误:确保用反斜杠\而不是正斜杠/
  • VHD未完全挂载:执行命令前等待几秒,让系统完成挂载流程
  • 权限不足:右键以管理员身份运行PowerShell后重试

内容的提问来源于stack exchange,提问作者Vinay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:03:34