Como adicionar uma ação de sequência de tarefas de implantação do sistema operacional

Uma ação de sequência de tarefas de implantação do sistema operacional é adicionada a uma sequência de tarefas, em Configuration Manager, criando uma instância de uma classe derivada SMS_TaskSequence_Action e adicionando-a às etapas da sequência de tarefas.

Observação

Configuration Manager tem uma série de ações internas que você pode usar. Por exemplo, a classe de ação de linha de comando é SMS_TaskSequence_RunCommandLineAction. Essas classes derivam da classe SMS_TaskSequence_Action .

SMS_TaskSequenceAction deriva da classe SMS_TaskSequence_Step , que é a classe base para ações e grupos. A sequência de tarefas armazena suas etapas em uma matriz de SMS_TaskSequence_Step, permitindo que ações e grupos sejam armazenados juntos.

Para adicionar uma ação de 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. Crie um objeto de sequência de tarefas (SMS_TaskSequence). Para obter mais informações, consulte Como criar uma sequência de tarefas de implantação do sistema operacional.

  3. Crie uma instância de classe derivada SMS_TaskSequenceAction, por exemplo, SMS_TaskSequence_RunCommandLineAction, para a ação desejada.

  4. Preencha a ação conforme apropriado.

  5. Adicione a ação às etapas de sequências de tarefas. Isso é armazenado na propriedade steps da classe SMS_TaskSequence).

Exemplo

O método de exemplo a seguir cria uma ação de linha de comando e adiciona-a à sequência de tarefas fornecida.

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

Sub AddTaskSequenceActionCommandLine(connection, taskSequence, name, description)     

    Dim steps  
    Dim action    

    Set action = connection.Get("SMS_TaskSequence_RunCommandLineAction").SpawnInstance_  

    action.CommandLine = "cmd /c Echo Hello"  
    action.Name=name  
    action.Description=description  
    action.Enabled=True  
    action.ContinueOnError=False  

      If IsNull(taskSequence.Steps) Then  
        steps = Array(action)  
        taskSequence.Steps=steps  
    Else  
        steps= Array(taskSequence.Steps)  
        ReDim steps (UBound (taskSequence.Steps)+1)   
        taskSequence.Steps(UBound(steps))=action  
    End if    

End Sub  

public IResultObject AddTaskSequenceActionCommandLine(  
    WqlConnectionManager connection,   
    IResultObject taskSequence,  
    string name,   
    string description)  
{  
    try  
    {  
        // Create the new step.  
        IResultObject ro;  

        ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");  
        ro["CommandLine"].StringValue = @"cmd /c Echo Hello";  

        ro["Name"].StringValue = name;  
        ro["Description"].StringValue = description;  
        ro["Enabled"].BooleanValue = true;  
        ro["ContinueOnError"].BooleanValue = false;  

        // Add the step to the task sequence.  
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");  

        array.Add(ro);  

        taskSequence.SetArrayItems("Steps", array);  

        return ro;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to add action: " + e.Message);  
        throw;  
    }  
}  

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

Parâmetro Tipo Descrição
connection -Gerenciado: WqlConnectionManager
- VBScript: SWbemServices
Uma conexão válida com o provedor de SMS.
taskSequence -Gerenciado: IResultObject
- VBScript: SWbemObject
Uma sequência de tarefas válida.
Name -Gerenciado: String
-Vbscript: String
Um nome para a nova ação.
Description -Gerenciado: String
-Vbscript: String
Uma descrição da ação.

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 condição a uma etapa 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
Como criar um grupo de sequência de tarefas de implantação do sistema operacional
Como excluir uma ação de sequência de tarefas de implantação do sistema operacional
Visão geral de sequências de tarefas