So verfolgen Sie Migrationen zur Betriebssystembereitstellung in Configuration Manager

Sie verfolgen Configuration Manager Betriebssystemmigrationen nach, indem Sie die SMS_StateMigration Klasse überprüfen.

Die Eigenschaften , StoreDeletionDateund StoreReleaseDate können StoreCreationDateverwendet werden, um den aktuellen Status der Migration zu identifizieren.

Zum Nachverfolgen von Statusmigrationen

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Verschaffen Sie sich eine instance von SMS_StateMigration.

  3. Berechnen Sie den aktuellen Migrationsstatus mithilfe der StoreCreationDateEigenschaften , StoreDeletionDate, und StoreReleaseDate

Beispiel

Die folgende Beispielmethode durchläuft alle Migrationen und ermittelt, ob sie durchgeführt werden.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.

Sub MigrationState(connection)

    Dim migrations
    Dim migration
    Dim inProgress
    Dim zeroTime

    zeroTime = "00000000000000.000000+***"

    Set migrations = connection.ExecQuery( "Select * From SMS_StateMigration")

    For Each migration in Migrations
        inProgress=False

        If migration.StoreCreationDate<>zeroTime Then
            If migration.StoreReleaseDate = zeroTime Then
                inProgress=True
            Else If migration.StoreDeletionDate = zeroTime Then
                inProgress = True
            Else
                inProgress = false
            End If
        End If
        Else
            inProgress=False
        End If

        WScript.StdOut.Write "Migration " + migration.MigrationID
        If inProgress = True Then
            Wscript.Echo " is in progress"
        Else
            WScript.Echo " is not in progress"
        End If
    Next

End Sub
public void MigrationState(WqlConnectionManager connection)
{
    try
    {
        IResultObject migrations =
            connection.QueryProcessor.ExecuteQuery("Select * from SMS_StateMigration");

        string zeroTime = "00000000000000.000000+***";

        foreach (IResultObject migration in migrations)
        {
            Boolean inProgress = false;

            if (migration["StoreCreationDate"].DateTimeValue.Equals(zeroTime) == false)
            {
                if (migration["StoreReleaseDate"].DateTimeValue.Equals(zeroTime) == true)
                {
                    inProgress = true;
                }
                else if (migration["StoreDeletionDate"].DateTimeValue.Equals(zeroTime) == true)
                {
                    inProgress = true;
                }
                else
                {
                    inProgress = false;
                }
            }
            else
            {
                inProgress = false;
            }

            Console.Write("Migration " + migration["MigrationID"].StringValue);
            if (inProgress)
            {
                Console.WriteLine(" is in progress");
            }
            else
            {
                Console.WriteLine(" is not in progress");
            }
        }
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed while displaying migration state: " + e.Message);
        throw;
    }
}

Die Beispielmethode hat die folgenden Parameter:

Parameter Typ Beschreibung
connection - Verwaltet: WqlConnectionManager
- VBScript: SWbemDienste
Eine gültige Verbindung mit dem SMS-Anbieter.

Kompilieren des Codes

Für das C#-Beispiel gelten die folgenden Anforderungen für die Kompilierung:

Namespaces

System

System.Collections.Generic

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Sichern von Configuration Manager-Anwendungen finden Sie unter rollenbasierte Verwaltung von Configuration Manager.

Siehe auch

Objekte – ÜbersichtHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von WMIInformationen zur Betriebssystembereitstellung Computerverwaltung