Non è possibile importare una macchina virtuale usando Hyper-V Manager o System Center Virtual Machine Manager (SCVMM) in un server Hyper-V

Questo articolo consente di correggere un errore di 0x80070057 che si verifica quando si tenta di importare una macchina virtuale esportata tramite Gestione Hyper-V o System Center Virtual Machine Manager (SCVMM) in un server Hyper-V.

Si applica a: Windows Server 2012 R2
Numero KB originale: 968968

Sintomi

Quando si tenta di importare una macchina virtuale esportata tramite Gestione Hyper-V, non è possibile importare la macchina virtuale usando Gestione Hyper-V in un server Hyper-V diverso. Inoltre, viene visualizzato un messaggio di errore simile al seguente:

Errore del server durante il tentativo di importazione della macchina virtuale. Impossibile importare la macchina virtuale dal percorso> della directory< di importazione. Errore: uno o più argomenti non sono validi (0x80070057).

Quando si tenta di usare System Center Virtual Machine Manager (SCVMM) per importare una macchina virtuale esportata tramite Gestione Hyper-V, viene visualizzato il messaggio di errore seguente:

Errore (12700) VMM non riesce a completare l'operazione Hyper-V nel server FQDN> del< server a causa dell'errore: Impossibile importare la macchina virtuale dal percorso> della directory< di importazione. Errore: uno o più argomenti non validi (0x80070057) (errore sconosciuto (0x8005))

Soluzione alternativa

Per risolvere il problema, attenersi alla seguente procedura:

  1. Individuare la cartella della macchina virtuale esportata e quindi aprire il file con estensione exp.

  2. Nella riga tra <VALUE> e </VALUE> eliminare il GUID. Di seguito è riportato un esempio che mostra un esempio di codice dal file con estensione exp e il valore da rimuovere:

    <PROPERTY NAME="ScopeOfResidence" TYPE="string">
        <VALUE>
          222dea57-bedd-465c-8fe4-54f2ad7ae699         ** => DELETE THIS GUID**
        </VALUE>
      </PROPERTY>
    
  3. Salvare le modifiche e quindi uscire dal Blocco note.

  4. Importare di nuovo la macchina virtuale modificata.

Se si vuole risolvere questo problema automaticamente, è possibile eseguire uno script di Visual Basic in un server Hyper-V prima di importare una macchina virtuale nel server 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  

Stato

Microsoft ha confermato che si tratta di un problema nei prodotti Microsoft elencati all'inizio di questo articolo.