Como enumerar as etapas em uma sequência de tarefas de implantação do sistema operacional

Você enumera uma sequência de tarefas de implantação do sistema operacional, em Configuration Manager, usando um método recursivo para examinar as etapas e grupos da sequência de tarefas.

Para enumerar as etapas em uma sequência de tarefas

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.

  2. Obtenha uma sequência de tarefas válida SMS_TaskSequence objeto. Para obter mais informações, consulte Como criar uma sequência de tarefas de implantação do sistema operacional

  3. Enumera por meio das etapas para exibir nomes de ação (SMS_TaskSequence_Action). Use a recursão para acessar todos os grupos (SMS_TaskSequence_Group) encontrados e exibir suas ações.

Exemplo

O exemplo a seguir exibe as ações e os grupos em uma sequência de tarefas.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

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

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
taskSequence -Gerenciado: IResultObject
- VBScript: SWbemObject
Uma sequência de tarefas válida (SMS_TaskSequence). O grupo é adicionado a essa sequência de tarefas.
indent -Gerenciado: Integer
-Vbscript: Integer
O recuo é usado para a saída do console de espaço para grupos filho.

Compilando o código

Este exemplo de C# requer:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.

Confira também

Visão geral de objetoscomo adicionar uma ação de sequência de tarefas de implantação do sistema operacional
Como se conectar a um provedor de SMS em Configuration Manager usando código gerenciado
Como se conectar a um provedor de SMS no Configuration Manager usando o WMI
Visão geral de sequências de tarefas