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
Dbdaoint.h
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

Siehe auch

Msvm_VirtualSystemSnapshotService

CreateVirtualSystemSnapshot (V1)