Dela via


Räkna upp stegen i en aktivitetssekvens för operativsystemdistribution

Du räknar upp en aktivitetssekvens för operativsystemdistribution i Configuration Manager med hjälp av en rekursiv metod för att genomsöka aktivitetssekvensstegen och grupperna.

Räkna upp stegen i en aktivitetssekvens

  1. Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.

  2. Hämta en giltig aktivitetssekvens SMS_TaskSequence objekt. Mer information finns i How to Create an Operating System Deployment Task Sequence (Skapa en aktivitetssekvens för operativsystemdistribution)

  3. Räkna upp genom stegen för att visa alla åtgärdsnamn (SMS_TaskSequence_Action). Använd rekursion för att komma åt alla grupper (SMS_TaskSequence_Group) som hittas och visa deras åtgärder.

Exempel

I följande exempel visas åtgärder och grupper i en aktivitetssekvens.

Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.

Sub RecurseTaskSequenceSteps(taskSequence, indent)  

    Dim osdStep   
    Dim i  

    ' Indent each new group.  
    for each osdStep in taskSequence.Steps  

        for i=0 to indent  
            WScript.StdOut.Write " "  
        next  

        If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then  
            wscript.StdOut.Write "Group: "   
        End If  

        WScript.Echo osdStep.Name  

        ' Recurse into each group found.  
        If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then  
            If IsNull(osdStep.Steps) Then  
                Wscript.Echo "No steps"  
            Else  
                Call RecurseTaskSequenceSteps (osdStep, indent+3)  
            End If      
        End If  
     Next     
End Sub          
public void RecurseTaskSequenceSteps(  
    IResultObject taskSequence,  
    int indent)  
{  
    try  
    {  
        // The array of SMS_TaskSequence_Steps.  
        List<IResultObject> steps = taskSequence.GetArrayItems("Steps");  

        foreach (IResultObject ro in steps)  
        {  
            for (int i = 0; i < indent; i++)  
            {  
                Console.Write(" ");  
            }  

            if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")  
            {  
                Console.Write("Group: ");  
            }  

            Console.WriteLine(ro["Name"].StringValue);  

            // Child groups that are found. Use recursion to view them.  
            if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")  
            {  
                this.RecurseTaskSequenceSteps(ro, indent + 3);  
            }  
        }  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);  
        throw;  
    }  
}  

Exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
taskSequence -Hanterade: IResultObject
– VBScript: SWbemObject
En giltig aktivitetssekvens (SMS_TaskSequence). Gruppen läggs till i den här aktivitetssekvensen.
indent -Hanterade: Integer
-Vbscript: Integer
Indrag används för utdata från utrymmeskonsolen för underordnade grupper.

Kompilera koden

Det här C#-exemplet kräver:

Namnområden

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Församlingen

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robust programmering

Mer information om felhantering finns i Om Configuration Manager fel.

.NET Framework Säkerhet

Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.

Se även

ObjektöversiktSå här lägger du till en aktivitetssekvensåtgärd för operativsystemdistribution
Ansluta till en SMS-provider i Configuration Manager med hjälp av hanterad kod
Ansluta till en SMS-provider i Configuration Manager med hjälp av WMI
Översikt över aktivitetssekvens