簡體   English   中英

Hyper-V無法將現有的vhd文件附加到新創建的虛擬機上?

[英]Hyper-V unable to attach existing vhd file to newly created virtual machine?

我的目標是以編程方式創建新的虛擬機並將現有的vhdx文件附加到該計算機。 我程序的唯一輸入是VM名稱和VHDX路徑。 我正在使用Hyper-V WMI Provider和Virtualization V2命名空間來實現此目的。 基本上,我本文中給出的內容作為腳本來實現。 鏈接所述,我首先添加一個合成驅動器,然后嘗試附加vhdx文件。

我能夠成功創建虛擬機並將合成驅動器添加到該計算機。 但是,當我嘗試添加硬盤vhdx文件時,出現以下錯誤。 “新Virtaul機器”無法添加資源。(虛擬機ID ...)。 作業錯誤代碼為32768,作業狀態為10,僅對應於“失敗”。

這是我用來連接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,請參閱鏈接。 當我分析VHDoutParams變量以獲取錯誤消息和錯誤代碼時,我僅獲得以下詳細信息。 錯誤說明:“新Virtaul機器”添加資源失敗。(虛擬機ID ...)。 錯誤代碼:32768(失敗)作業狀態:10

我不知道我在想什么。 我以管理員身份以提升模式運行該程序。 我沒有在Hyper-V主機中安裝防病毒軟件。我也已經在Internet上進行了徹底搜索,但找不到任何幫助。 我想念什么或做錯什么?

vhdx文件僅適用於第2代VM。 請檢查是否也可能是未發現的錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM