Невозможно импортировать виртуальную машину с помощью диспетчера Hyper-V или System Center Virtual Machine Manager (SCVMM) на сервере Hyper-V.

Эта статья поможет устранить ошибку 0x80070057, которая возникает при попытке импортировать виртуальную машину, экспортированную с помощью диспетчера Hyper-V или System Center Virtual Machine Manager (SCVMM) на сервер Hyper-V.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 968968

Симптомы

При попытке импортировать виртуальную машину, экспортированную с помощью диспетчера Hyper-V, невозможно импортировать виртуальную машину с помощью диспетчера Hyper-V на другом сервере Hyper-V. Кроме того, появляется сообщение об ошибке, похожее на следующее:

При попытке импорта виртуальной машины произошла ошибка сервера. Не удалось импортировать виртуальную машину из каталога<> импорта. Ошибка: один или несколько аргументов недопустимы (0x80070057).

При попытке использовать System Center Virtual Machine Manager (SCVMM) для импорта виртуальной машины, экспортируемой с помощью диспетчера Hyper-V, появляется следующее сообщение об ошибке:

Ошибка (12700) VMM не может завершить операцию Hyper-V на <сервере полного доменного имени> сервера из-за ошибки: Не удалось импортировать виртуальную машину из пути<> каталога импорта. Ошибка: один или несколько аргументов недопустимы (0x80070057) (неизвестная ошибка (0x8005))

Обходной путь

Чтобы обойти эту проблему, выполните указанные ниже действия.

  1. Найдите экспортированную папку виртуальной машины, а затем откройте EXP-файл.

  2. В строке между <ЗНАЧЕНИЯми> и </VALUE> удалите 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  

Состояние

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