Не удается импортировать виртуальную машину с помощью диспетчера Hyper-v или диспетчер виртуальных машин System Center (SCVMM) на сервере Hyper-V

Применимо к: Windows Server 2008 StandardWindows Server 2008 EnterpriseWindows Server 2008 Datacenter

Симптомы


При попытке импорта виртуальной машины, которые были экспортированы с помощью диспетчера Hyper-V не удается импортировать виртуальную машину с помощью диспетчера Hyper-V на другом сервере Hyper-V. Кроме того появляется сообщение об ошибке, подобное приведенному ниже:
Ошибка сервера при попытке импорта виртуальной машины. Не удалось импортировать виртуальную машину из каталога импорта < путь >. Ошибка: Один или несколько аргументов являются недопустимыми (0x80070057).
При попытке использовать диспетчер виртуальных машин System Center (SCVMM) для импорта виртуальной машины, которые были экспортированы с помощью диспетчера Hyper-V, появляется следующее сообщение об ошибке:
Ошибка (12700) VMM не удается завершить операцию Hyper-V на сервере < полное доменное имя сервера > из-за ошибки: не удалось импортировать виртуальную машину из каталога импорта < путь >. Ошибка: Один или несколько аргументов являются недопустимыми (0x80070057) (неизвестная ошибка (0x8005))

Временное решение


Чтобы обойти эту проблему, выполните следующие действия.
  1. Найдите папку экспортированный виртуальной машины, а затем откройте EXP-файл.
  2. В строке между < значение > и < / стоимости > Удалить идентификатор GUID. Ниже приведен пример, который показывает пример кода из EXP-файла и значение, которое следует удалить.
    <PROPERTY NAME="ScopeOfResidence" TYPE="string">    <VALUE>
    222dea57-bedd-465c-8fe4-54f2ad7ae699 ** => DELETE THIS GUID**
    </VALUE>
    </PROPERTY>

  3. Сохраните изменения и закройте Блокнот.
  4. Повторно импортируйте измененный виртуальной машины.
Если требуется, чтобы автоматически устранить эту проблему, можно запустить сценарий 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

Дополнительные сведения о сценарии посетите следующий веб-узел:

Статус


Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".