最稳妥方式是用Hyper-V管理器图形化导出导入:第一步右键虚拟机选“导出”,指定非系统盘路径(如D:\VMExport\Win10-Dev);第二步确认导出目录含Config、Virtual Hard Disks、Snapshots三文件夹;第三步在目标机右键服务器选“导入虚拟机”,类型必须选“复制虚拟机(创建新的唯一ID)”,并手动重设网络适配器绑定。

要在Windows中准确导出和导入Hyper-V虚拟机的完整配置(含网络、检查点、磁盘路径与启动设置),不能只复制.vhdx文件或手动编辑XML——漏掉Config目录会导致导入后无网络适配器、快照丢失、甚至无法启动。
用Hyper-V管理器图形化导出配置
这是最稳妥的入门方式,全程可视化,自动打包所有依赖项,适合不熟悉PowerShell的用户。
第一步:在源主机以管理员身份打开“Hyper-V管理器”,确认左侧已连接到本机;右键目标虚拟机→选择“导出”。
第二步:指定一个**非系统盘本地路径**(如D:\VMExport\Win10-Dev),点击“确定”开始导出;导出过程要求虚拟机处于关闭或已保存状态,运行中导出可能跳过当前内存状态,但配置文件仍能写入——不过快照链可能断裂,【务必先关机再导出】。
第三步:导出完成后,打开该路径,确认存在三个固定子文件夹:Config(含.xml和.bin)、Virtual Hard Disks(含.vhdx)、Snapshots(如有检查点则非空);缺任何一个,说明导出不完整,不可用于迁移。
用PowerShell命令行精准导出配置
适用于批量操作、服务器无GUI环境,或需脚本固化流程的场景。命令本身不校验虚拟机状态,全靠你手动把关。
以管理员身份运行PowerShell,执行:
Export-VM -Name "Win10-Dev" -Path "D:\VMExport\Win10-Dev"
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
导出成功后,PowerShell会返回“Completed”,此时立即检查D:\VMExport\Win10-Dev\Virtual Machines\目录下是否生成了形如{a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8}.xml的文件——这个文件是后续导入的唯一入口,丢了就无法注册。
若要一次导出所有已关机虚拟机,可用管道过滤:
Get-VM | Where-Object {$_.State -eq 'Off'} | Export-VM -Path "D:\VMExport"
导入时选对类型,决定配置是否生效
导入不是简单“放回去”,而是重新注册虚拟机实例。选错类型会导致网络失效、磁盘脱钩、甚至两台同名VM冲突。
方法一:图形界面导入(推荐首次使用)
在目标主机Hyper-V管理器中,右键服务器名称→“导入虚拟机”→浏览至D:\VMExport\Win10-Dev→勾选虚拟机→下一步→在“选择导入类型”页:
• 选“复制虚拟机(创建新的唯一ID)”:用于克隆、测试、跨域部署,【避免SID和MAC地址冲突】;
• 选“注册虚拟机”:仅适用于灾备恢复且原VM已彻底删除,否则会提示ID重复错误。
方法二:PowerShell导入并强制重映射网络
以管理员身份运行PowerShell,执行:
Import-VM -Path "D:\VMExport\Win10-Dev\Virtual Machines\{a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8}.xml" -Copy -GenerateNewId
导入完成后,立刻执行:
Set-VMNetworkAdapter -VMName "Win10-Dev" -SwitchName "Default Switch"
这一步不能省——导入不会继承原虚拟交换机绑定关系,不手动重设网卡,虚拟机启动后将无网络连接。

















