Freigeben über


Auflisten der Schritte in einer Tasksequenz für die Betriebssystembereitstellung

Sie listen eine Tasksequenz für die Betriebssystembereitstellung in Configuration Manager auf, indem Sie eine rekursive Methode verwenden, um die Tasksequenzschritte und -gruppen zu durchsuchen.

So listen Sie die Schritte in einer Tasksequenz auf

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

  2. Rufen Sie eine gültige Tasksequenz SMS_TaskSequence -Objekt ab. Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.

  3. Führen Sie die Schritte auf, um alle Aktionsnamen (SMS_TaskSequence_Action) anzuzeigen. Verwenden Sie Rekursion, um auf gefundene Gruppen (SMS_TaskSequence_Group) zuzugreifen und deren Aktionen anzuzeigen.

Beispiel

Im folgenden Beispiel werden die Aktionen und Gruppen innerhalb einer Tasksequenz angezeigt.

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

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

Die Beispielmethode verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
taskSequence -Gehandhabt: IResultObject
– VBScript: SWbemObject
Eine gültige Tasksequenz (SMS_TaskSequence). Die Gruppe wird dieser Tasksequenz hinzugefügt.
indent -Gehandhabt: Integer
– VBScript: Integer
Einzug wird verwendet, um die Konsolenausgabe für untergeordnete Gruppen zu belegen.

Kompilieren des Codes

Für dieses C#-Beispiel ist Folgendes erforderlich:

Namespaces

System

System.Collections.Generic

System.Text

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 Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

ObjektübersichtSo fügen Sie eine Tasksequenzaktion für die Betriebssystembereitstellung hinzu: Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe der WMI-Tasksequenzübersicht