必须先安全分离VHDX才能移动、重命名或删除文件,否则系统提示“文件已在System中打开”;可通过磁盘管理右键磁盘编号选“分离VHD”、Diskpart执行select vdisk file=… detach vdisk,或PowerShell运行Dismount-VHD命令实现。

当你需要彻底断开VHDX虚拟磁盘与系统的连接,比如要移动、重命名或删除该.vhdx文件,就必须先安全分离它,否则系统会提示“文件已在 System 中打开”或直接拒绝操作。
通过磁盘管理图形界面分离VHDX
这是最直观、适合所有用户的常规方式,无需记忆命令,但必须确保当前没有程序正在读写该磁盘。
右键点击【此电脑】→ 选择【管理】→ 左侧导航栏进入【磁盘管理】。
在下方磁盘列表中找到对应VHDX磁盘(通常显示为“磁盘X”,图标为蓝色,且右侧分区带有驱动器号如E:、Z:)。
右键单击该磁盘左侧的灰色条(即磁盘编号区域,不是右侧分区),选择【分离VHD】。
【注意:务必右键磁盘编号区域,而非右键分区或驱动器号;若误点分区,菜单中不会出现“分离VHD”选项】
弹出确认框后点击【确定】,磁盘图标将变为灰色,驱动器号从“此电脑”中消失,此时即可安全操作.vhdx文件。
使用Diskpart命令行批量分离
适用于需同时卸载多个VHDX、或图形界面异常无法响应的场景。操作前请关闭所有可能访问该磁盘的程序(如资源管理器窗口、编辑器、备份软件等)。
以管理员身份运行【命令提示符】或【Windows PowerShell】。
输入 diskpart 并回车,进入交互环境。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
执行以下三步(每行一条,回车执行):
select vdisk file="D:\Backup\Win11.vhdx"
detach vdisk
exit
路径中的反斜杠必须为英文格式,且文件路径必须存在;若路径含空格,无需加引号,但必须确保路径完全正确,否则报错“找不到文件”。
分离成功后,diskpart会返回“已成功分离虚拟磁盘”,且该VHDX不再出现在磁盘管理或资源管理器中。
用PowerShell一键卸载(支持脚本化)
方法一:卸载指定路径的VHDX
以管理员身份运行PowerShell,执行:Dismount-VHD -Path "D:\VMs\test.vhdx"
方法二:卸载所有已挂载的VHDX(慎用)
执行:Get-VHD | Where-Object {$_.Attached -eq $true} | ForEach-Object { Dismount-VHD $_.Path }
该命令会遍历所有当前已挂载的VHDX并全部卸载,【若你只挂载了一个VHDX却运行了此命令,无风险;但若同时挂载了多个用于不同用途的VHDX(如开发+测试+备份),则全部中断】。
执行后无提示即表示成功;若某VHDX正被占用,PowerShell会报错并跳过,其余仍正常卸载。

















