Msvm_VirtualSystemSnapshotService 類別的 CreateSnapshot 方法
建立虛擬機器的快照集。
語法
uint32 CreateSnapshot(
[in] CIM_ComputerSystem REF AffectedSystem,
[in] string SnapshotSettings,
[in] uint16 SnapshotType,
[in, out] CIM_VirtualSystemSettingData REF ResultingSnapshot,
[out] CIM_ConcreteJob REF Job
);
參數
-
AffectedSystem [in]
-
CIM_ComputerSystem類別的參考,表示要建立快照集的虛擬機器。
-
SnapshotSettings [in]
-
字串,包含內嵌實例的 CIM_SettingData 類別,其中包含快照集的參數設定。 這個參數是選擇性的,而且可以是空字串。
-
SnapshotType [in]
-
指定要求的快照集類型。 這必須是下列其中一個值。
-
完整快照 集 (2)
-
虛擬機器的完整快照集。
-
磁片快照 集 (3)
-
虛擬機器磁片的快照集。
-
DMTF 保留 (。。)
-
廠商特定 (32768..65535)
ResultingSnapshot [in, out]
代表所產生虛擬機器快照 集之CIM_VirtualSystemSettingData 物件的參考。
作業 [out]
如果作業是以非同步方式執行,這個方法會傳回 4096,而此參數將包含衍生自 CIM_ConcreteJob之物件的參考。
傳回值
這個方法會傳回下列其中一個值。
-
已完成,沒有錯誤 (0)
-
不支援 (1)
-
失敗 (2)
-
逾 時 (3)
-
不正確參數 (4)
-
不正確狀態 (5)
-
不正確類型 (6)
-
DMTF 保留 (。。)
-
已檢查方法參數 - 作業啟動 (4096)
-
保留 (4097..32767)
-
廠商特定 (32768..65535)
範例
下列 C# 範例程式碼會建立虛擬機器。 您可以在虛擬 範例的常見公用程式中找到參考的公用程式, (V2) 。
重要
若要正常運作,必須在虛擬機器主機伺服器上執行下列程式碼,而且必須使用系統管理員許可權來執行。
public static void CreateSnapshot(string vmName)
{
ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
ManagementObject virtualSystemService = Utility.GetServiceObject(scope, "Msvm_VirtualSystemSnapshotService");
ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("CreateSnapshot");
// Set the AffectedSystem property.
ManagementObject vm = Utility.GetTargetComputer(vmName, scope);
if (null == vm)
{
throw new ArgumentException(string.Format("The virtual machine \"{0}\" could not be found.", vmName));
}
inParams["AffectedSystem"] = vm.Path.Path;
// Set the SnapshotSettings property.
#if(true)
inParams["SnapshotSettings"] = "";
#else
ManagementObject snapshotSettings = Utility.GetServiceObject(scope, "CIM_SettingData");
inParams["SnapshotSettings"] = snapshotSettings.ToString();
#endif
// Set the SnapshotType property.
inParams["SnapshotType"] = 2; // Full snapshot.
ManagementBaseObject outParams = virtualSystemService.InvokeMethod("CreateSnapshot", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("Snapshot was created successfully.");
MiscClass.GetAffectedElement(outParams, scope);
}
else
{
Console.WriteLine("Failed to create snapshot VM");
}
}
else if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
Console.WriteLine("Snapshot was created successfully.");
}
else
{
Console.WriteLine("Create virtual system snapshot failed with error {0}", outParams["ReturnValue"]);
}
inParams.Dispose();
outParams.Dispose();
vm.Dispose();
virtualSystemService.Dispose();
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2012 [僅限傳統型應用程式] |
命名空間 |
Root\Virtualization\V2 |
標頭 |
|
MOF |
|
DLL |
|