Compartir a través de


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, vea 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 de sistema operativoCómo conectarse 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 tareas de implementación de sistema operativoInformación general sobre cómo eliminar unasecuencia de tareas de secuencia de tareas de implementación del sistema operativo