Cómo agregar una acción de secuencia de tareas de implementación del sistema operativo

Una acción de secuencia de tareas de implementación del sistema operativo se agrega a una secuencia de tareas, en Configuration Manager, mediante la creación de una instancia de una clase derivada de SMS_TaskSequence_Action y, a continuación, agregarla a los pasos de la secuencia de tareas.

Nota:

Configuration Manager tiene una serie de acciones integradas que puede usar. Por ejemplo, la clase de acción de línea de comandos es SMS_TaskSequence_RunCommandLineAction. Estas clases derivan de la clase SMS_TaskSequence_Action .

SMS_TaskSequenceAction deriva de la clase SMS_TaskSequence_Step , que es la clase base para acciones y grupos. La secuencia de tareas almacena sus pasos en una matriz de SMS_TaskSequence_Step, lo que permite almacenar acciones y grupos juntos.

Para agregar una acción de 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. Cree un objeto de secuencia de tareas (SMS_TaskSequence). 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. Cree una instancia de clase derivada de SMS_TaskSequenceAction , por ejemplo, SMS_TaskSequence_RunCommandLineAction, para la acción que desee.

  4. Rellene la acción según corresponda.

  5. Agregue la acción a los pasos de secuencias de tareas. Se almacena la propiedad steps de clase SMS_TaskSequence).

Ejemplo

El siguiente método de ejemplo crea una acción de línea de comandos y la agrega a la secuencia de tareas proporcionada.

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

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

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

Parámetro Tipo Descripción
connection -Administrado: WqlConnectionManager
- VBScript: SWbemServices
Una conexión válida al proveedor de SMS.
taskSequence -Administrado: IResultObject
- VBScript: SWbemObject
Secuencia de tareas válida.
Name -Administrado: String
-Vbscript: String
Nombre de la nueva acción.
Description -Administrado: String
-Vbscript: String
Descripción de la acción.

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 condición a un paso 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
Cómo crear un grupo de secuencias de tareas de implementación del sistema operativo
Procedimiento para eliminar una acción de secuencia de tareas de implementación del sistema operativo
Introducción a la secuencia de tareas