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 オブジェクトへの参照。
ジョブ [出力]
操作が非同期的に実行される場合、このメソッドは 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 |
Header |
|
MOF |
|
[DLL] |
|