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, creando una instancia de una clase derivada de SMS_TaskSequence_Action y agregándola a continuación 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 las acciones y los grupos. La secuencia de tareas almacena sus pasos en una matriz de SMS_TaskSequence_Step, lo que permite que las acciones y los grupos se almacenen juntos.

Para agregar una acción de secuencia de tareas

  1. Configure una conexión al 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 Cómo crear una secuencia de tareas de implementación del sistema operativo.

  3. Cree una SMS_TaskSequenceAction instancia de clase derivada, 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. Esto se almacena la propiedad Pasos de clase SMS_TaskSequence).

Ejemplo

El método de ejemplo siguiente 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, consulte 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 siguientes parámetros:

Parámetro Tipo Descripción
connection - Administrado: WqlConnectionManager
- VBScript: SWbemServices
Una conexión válida con el proveedor de SMS.
taskSequence - Administrado: IResultObject
- VBScript: SWbemObject
Una secuencia de tareas válida.
Name - Administrado: String
- VBScript: String
Un nombre para la nueva acción.
Description - Administrado: String
- VBScript: String
Una 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 acerca del control de errores, consulte Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información acerca de cómo proteger las aplicaciones de Configuration Manager, consulte Administración basada en roles de Configuration Manager.

Consulta también

Información generalsobre objetos Cómo agregar una condición a un sistema operativo Paso de la secuencia de tareas Cómoconectarse a un proveedor de SMS en Configuration Manager mediante código administradoCómo conectarse a un proveedor de SMS en Configuration Manager mediante WMICómo crear un grupode secuencia de tareas de implementación de sistema operativoCómo eliminar una implementación del sistema operativo Acción de secuencia de tareas Introducción ala secuencia de tareas