CreateSnapshot-Methode der Msvm_VirtualSystemSnapshotService-Klasse
Erstellt eine Momentaufnahme eines virtuellen Computers.
Syntax
uint32 CreateSnapshot(
[in] CIM_ComputerSystem REF AffectedSystem,
[in] string SnapshotSettings,
[in] uint16 SnapshotType,
[in, out] CIM_VirtualSystemSettingData REF ResultingSnapshot,
[out] CIM_ConcreteJob REF Job
);
Parameter
-
AffectedSystem [in]
-
Ein Verweis auf eine CIM_ComputerSystem Klasse, die den virtuellen Computer darstellt, von dem eine Momentaufnahme erstellt werden soll.
-
SnapshotSettings [in]
-
Eine Zeichenfolge, die eine eingebettete instance einer CIM_SettingData Klasse enthält, die die Parametereinstellungen für die Momentaufnahme enthält. Dieser Parameter ist optional und kann eine leere Zeichenfolge sein.
-
SnapshotType [in]
-
Gibt den Typ der angeforderten Momentaufnahme an. Dies muss einer der folgenden Werte sein.
-
Vollständige Momentaufnahme (2)
-
Schließen Sie Momentaufnahme des virtuellen Computers ab.
-
Datenträgermomentaufnahme (3)
-
Momentaufnahme von Vm-Datenträgern.
-
DMTF Reserviert (..)
-
Herstellerspezifisch (32768..65535)
ResultSnapshot [in, out]
Ein Verweis auf ein CIM_VirtualSystemSettingData-Objekt, das die resultierende vm-Momentaufnahme darstellt.
Auftrag [out]
Wenn der Vorgang asynchron ausgeführt wird, gibt diese Methode 4096 zurück, und dieser Parameter enthält einen Verweis auf ein Objekt, das von CIM_ConcreteJob abgeleitet wurde.
Rückgabewert
Diese Methode gibt einen der folgenden Werte zurück.
-
Abgeschlossen ohne Fehler (0)
-
Nicht unterstützt (1)
-
Fehler (2)
-
Timeout (3)
-
Ungültiger Parameter (4)
-
Ungültiger Zustand (5)
-
Ungültiger Typ (6)
-
DMTF Reserviert (..)
-
Methodenparameter überprüft – Auftrag gestartet (4096)
-
Reservierte Methode (4097..32767)
-
Herstellerspezifisch (32768..65535)
Beispiele
Der folgende C#-Beispielcode erstellt einen virtuellen Computer. Die referenzierten Hilfsprogramme finden Sie unter Allgemeine Hilfsprogramme für die Virtualisierungsbeispiele (V2).
Wichtig
Um ordnungsgemäß zu funktionieren, muss der folgende Code auf dem Hostserver des virtuellen Computers ausgeführt werden, und er muss mit Administratorrechten ausgeführt werden.
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();
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2012 [nur Desktop-Apps] |
Namespace |
Root\Virtualization\V2 |
Header |
|
MOF |
|
DLL |
|