无法使用 Hyper-V 上的 SCVMM Hyper-V SCVMM Virtual Machine Manager (导入) 虚拟机Hyper-V服务器
09/14/2020
本文内容
本文有助于修复在 Hyper-V 服务器上尝试导入已使用 Hyper-V Manager 或 System Center Virtual Machine Manager (SCVMM) 导出的虚拟机时发生的 0x80070057 错误。
适用于: Windows Server 2012 R2
原始 KB 编号: 968968
症状
当您尝试导入已使用 Hyper-V Manager 导出的虚拟机时,您无法通过使用 Hyper-V Manager 将其导入到其他 Hyper-V 服务器上。 此外,您会收到类似于以下内容的错误消息:
尝试导入虚拟机时发生服务器错误。 无法从导入目录导入虚拟机 。 错误:一个或多个参数无效 (0x80070057) 。
当您尝试使用 System Center Virtual Machine Manager (SCVMM) 导入使用 Hyper-V Manager 导出的虚拟机时,您将收到以下错误消息:
错误 (12700) VMM 无法完成 Hyper-V 操作,因为错误: 未能从导入目录导入 虚拟机 。 错误:一个或多个参数无效, (0x80070057) (未知 (0x8005) )
解决方法
若要解决此问题,请按照以下步骤操作:
找到导出的虚拟机文件夹,然后打开 .exp 文件。
在 和 之间的行 中,删除 GUID。 下面的示例展示了 .exp 文件的代码示例以及应删除的值:
222dea57-bedd-465c-8fe4-54f2ad7ae699 ** => DELETE THIS GUID**
保存更改,然后退出记事本。
再次导入修改后的虚拟机。
如果要自动解决此问题,可以在 Visual Basic 服务器上运行 Hyper-V 脚本,然后再将虚拟机导入 Hyper-V 服务器:
Option Explicit
Dim WMIService
Dim VMList
Dim VM
Dim VMSystemGlobalSettingData
Dim VMManagementService
Dim Result
'Get instance of 'virtualization' WMI service on the local computer
Set WMIService = GetObject("winmgmts:\\.\root\virtualization")
'Get a VMManagementService object
Set VMManagementService = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService").ItemIndex(0)
'Get all the MSVM_ComputerSystem object
Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
if VM.Caption = "Virtual Machine" then
Set VMSystemGlobalSettingData = (VM.Associators_("MSVM_ElementSettingData", "Msvm_VirtualSystemGlobalSettingData")).ItemIndex(0)
VMSystemGlobalSettingData.ScopeOfResidence = ""
Result = VMManagementService.ModifyVirtualSystem(VM.Path_.Path, VMSystemGlobalSettingData.GetText_(1))
end if
Next
状态
Microsoft 已确认这是本文开头列出的 Microsoft 产品中的问题。