Cómo enumerar los pasos de una secuencia de tareas de implementación del sistema operativo

Enumera una secuencia de tareas de implementación del sistema operativo, en Configuration Manager, mediante un método recursivo para examinar los pasos y grupos de la secuencia de tareas.

Para enumerar los pasos de una secuencia de tareas

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.

  2. Obtenga una secuencia de tareas válida SMS_TaskSequence objeto. Para obtener más información, vea How to Create an Operating System Deployment Task Sequence (Cómo crear una secuencia de tareas de implementación del sistema operativo).

  3. Enumere los pasos para mostrar los nombres de acción (SMS_TaskSequence_Action). Use la recursividad para acceder a los grupos (SMS_TaskSequence_Group) que se encuentran y mostrar sus acciones.

Ejemplo

En el ejemplo siguiente se muestran las acciones y los grupos dentro de una secuencia de tareas.

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.

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

El método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
taskSequence -Administrado: IResultObject
- VBScript: SWbemObject
Secuencia de tareas válida (SMS_TaskSequence). El grupo se agrega a esta secuencia de tareas.
indent -Administrado: Integer
-Vbscript: Integer
La sangría se usa para espaciado la salida de la consola para grupos secundarios.

Compilar el código

Este ejemplo de C# requiere:

Espacios de nombres

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.

Consulta también

Introducción a los objetosCómo agregar una acción de secuencia de tareas de implementación del sistema operativo
Conexión a un proveedor de SMS en Configuration Manager mediante código administrado
Conexión a un proveedor de SMS en Configuration Manager mediante WMI
Introducción a la secuencia de tareas