迁移Hyper-V虚拟机需确保目标主机已安装Hyper-V角色、版本兼容、网络连通且存储充足;推荐导出+导入法(保留检查点与配置),或PowerShell批量操作、脱机直拷、实时迁移及网络共享导出等五种方式。

将Hyper-V虚拟机从一台物理主机迁移到另一台物理主机,必须确保目标主机已安装Hyper-V角色、版本兼容、网络连通且具备足够存储空间,否则导入后无法启动或配置丢失。
使用Hyper-V管理器导出+导入(图形界面,推荐新手)
该方法适用于Windows Server 2012 R2及更高版本,完整保留检查点、配置和虚拟硬盘路径信息,无需命令行操作。
在源主机上右键目标虚拟机 → 选择“导出” → 指定本地路径(如D:VMExportMyVM)→ 点击“确定”开始导出。
导出完成后,确认文件夹内包含Virtual Hard Disks、Snapshots和Virtual Machines三个子目录;缺少任一目录说明导出异常,不可继续迁移。
将整个导出文件夹复制到目标主机的本地磁盘(不建议直接放网络共享路径,避免权限或断连导致导入失败)。
在目标主机打开Hyper-V管理器 → 右键服务器名称 → 选择“导入虚拟机” → 浏览至刚复制的文件夹 → 选择“注册虚拟机”(保留原ID,适合域内服务连续性)或“复制虚拟机”(生成新ID,避免SID冲突)→ 完成向导。
【导入后务必右键虚拟机 → “连接” → 启动并验证网卡是否绑定到存在的虚拟交换机】,否则开机黑屏或无网络——这是90%首次迁移失败的根源。
用PowerShell批量导出与导入(适合多VM或无人值守)
此方法绕过GUI限制,支持脚本化执行,但要求两台主机均以管理员身份运行PowerShell,且Hyper-V模块已加载。
方法一:导出单台VM
以管理员身份运行PowerShell,在源主机执行:
Export-VM -Name "WebServer01" -Path "E:ExportsWebServer01"
方法二:导入并自动启动
在目标主机执行:
Import-VM -Path "E:ExportsWebServer01Virtual Machines{GUID}.xml" -Register → 导入完成后立即运行:
Start-VM -Name "WebServer01"
注意:-Register参数不会复制文件,仅注册原有路径;若已移动.vhdx文件,必须改用-Copy参数并配合-GenerateNewId,否则启动报错“找不到虚拟硬盘”。
脱机文件直拷+手动注册(最快,但不保留检查点)
适用于已关机、无快照、且对迁移速度敏感的轻量级VM,跳过导出封装步骤,节省50%以上时间。
第一步:确认虚拟机状态为“已关闭”(不是“已保存”),否则.vhdx可能被锁定,拷贝会失败。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
第二步:定位两个关键文件:
① 配置文件:C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines{GUID}.xml
② 虚拟硬盘:C:UsersPublicDocumentsHyper-VVirtual Hard DisksMyVM.vhdx
第三步:将这两个文件复制到目标主机的对应目录(路径必须一致)或任意新路径;若放新路径,需用记事本打开.xml文件,搜索ParentPath字段,手动修改为新.vhdx绝对路径。
第四步:在目标主机PowerShell中执行:
Add-VM -Path "C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines{GUID}.xml"
这一步注册后,VM即出现在Hyper-V管理器列表中,但不会自动启动;需手动右键→“启动”。
实时迁移(零停机,需提前配置)
仅当两台主机已加入同一域、启用Kerberos约束委派、虚拟交换机名称完全一致、且CPU型号兼容时才可启用。迁移全程来宾系统持续运行,用户无感知。
① 在源主机Hyper-V管理器中,右键虚拟机 → “移动” → 选择“移动虚拟机”类型 → 下一步
② 选择目标主机(必须已添加到同一管理器视图)→ 勾选“包括存储” → 指定目标存储路径(如D:VMs)→ 下一步
③ 检查摘要页中的传输类型是否显示为Live;若显示Network,说明未满足实时迁移条件,强行执行将导致虚拟机临时冻结数秒甚至蓝屏。
【迁移前必须确保目标主机存在同名虚拟交换机,否则迁移中途失败且无法回滚】,名称差异(如“Default Switch” vs “外部网络”)即触发错误事件ID 21502。
通过网络共享路径导出(解决本地磁盘不足)
当源主机剩余空间小于VM总大小(含快照)时,可直接导出到目标主机的Windows共享文件夹,规避中间拷贝步骤。
在源主机Hyper-V管理器中右键虚拟机 → “导出” → 路径填写:
\TargetServerVMShareMyVM(需提前在目标主机创建共享并赋予源主机管理员读写权限)。
导出过程由源主机发起,数据流经网络直达目标共享;期间若网络中断,导出任务失败,已传部分不会自动清理,需手动删除残留文件夹。
导出成功后,直接在目标主机Hyper-V管理器中“导入虚拟机”,路径指向该共享文件夹即可——无需再复制本地。

















