Condividi tramite


Come tenere traccia delle migrazioni della distribuzione del sistema operativo in Configuration Manager

È possibile tenere traccia Configuration Manager migrazioni del sistema operativo controllando la classe SMS_StateMigration.

Le StoreCreationDateproprietà , StoreDeletionDatee StoreReleaseDate possono essere usate per identificare lo stato corrente della migrazione.

Per tenere traccia delle migrazioni di stato

  1. Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.

  2. Ottenere un'istanza di SMS_StateMigration.

  3. Calcolare lo stato di migrazione corrente usando le StoreCreationDateproprietà , StoreDeletionDatee StoreReleaseDate .

Esempio

Il metodo di esempio seguente enumera tutte le migrazioni e determina se sono in corso.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice Configuration Manager.

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;  
    }  
}  

Il metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
connection -Gestito: WqlConnectionManager
- VBScript: SWbemServices
Connessione valida al provider SMS.

Compilazione del codice

L'esempio C# presenta i requisiti di compilazione seguenti:

Namespaces

Sistema

System.collections.generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmazione efficiente

Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.

Sicurezza di .NET Framework

Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.

Vedere anche

Panoramica degli oggettiCome connettersi a un provider SMS in Configuration Manager tramite codice gestito
Come connettersi a un provider SMS in Configuration Manager tramite WMI
Informazioni sulla gestione dei computer di distribuzione del sistema operativo