2016-08-26 11 views
0

Моя цель - программно создать новую виртуальную машину и прикрепить существующий файл VHDX к этой машине. Единственными входами для моей программы являются имя виртуальной машины и путь VHDX. Я реализую это с использованием пространства имен WMI-провайдера Hyper-V и Virtualization V2. В основном я реализую то, что дается в статье this как сценарий. Как упоминалось в ссылке this, я сначала добавляю синтетический диск, а затем пытаюсь прикрепить файл vhdx.Hyper-V не может подключить существующий файл vhd к вновь созданной виртуальной машине?

Я могу успешно создать виртуальную машину и добавить синтетический диск к машине. Однако, когда я пытаюсь добавить файл vhdx на жесткий диск, я получаю следующую ошибку. «Новая машина Virtaul» не удалось добавить ресурсы (идентификатор виртуальной машины ...). Код ошибки задания - 32768, а состояние задания - 10, что соответствует «Failed».

Это код, который я использую для подключения файла vhdx.

//Add VHD 
    ManagementObject^ hardDisk = GetResourceAllocationsettingDataDefault(scope, 31, "Microsoft:Hyper-V:Virtual Hard Disk", "-"); 
    hardDisk = (ManagementObject^)hardDisk->Clone(); 
    array<String^>^ connection = gcnew array<String^>(1); 
    connection[0]="E:\\test.vhdx"; //Path to *.vhd file  

    hardDisk["Parent"] = synthetic->Path->Path; //WMI path-> This is the path of the synthetic drive that I added in the previous step. 
    hardDisk["HostResource"] = connection; 

    array<String^>^HDs = gcnew array<String^>(1); 
    HDs[0] = hardDisk->GetText(TextFormat::WmiDtd20); 

    ManagementBaseObject^ VHDinParams = vmtoCreate->GetMethodParameters("AddResourceSettings"); 
    VHDinParams["AffectedConfiguration"] = settings->Path->Path; 
    VHDinParams["ResourceSettings"] = HDs; 

    ManagementBaseObject^ VHDoutParams = vmtoCreate->InvokeMethod("AddResourceSettings", VHDinParams, nullptr); 

Для метода GetResourceAllocationsettingDataDefault см this ссылки. Когда я анализирую переменную VHDoutParams для сообщения об ошибке и кода ошибки, я просто получаю приведенные ниже данные. Описание ошибки: «Новая машина Virtaul» не смогла добавить ресурсы (идентификатор виртуальной машины ...). Код ошибки: 32768 (неудачно) Состояние вакансии: 10

Я не знаю, чего у меня нет. Я запускаю программу в повышенном режиме как администратор. У меня нет антивируса, установленного на хост-машине Hyper-V. Я также тщательно искал Интернет, но ничего не нашел. Что мне не хватает или что-то не так?

ответ

0

vhdx файлы предназначены только для генерации 2 VM. Пожалуйста, проверьте, что это может быть и ошибка, не указана