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

Elimine una acción de secuencia de tareas de implementación del sistema operativo en Configuration Manager quitando la acción de los pasos de la secuencia de tareas.

Para eliminar 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. Obtener 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. Quite la acción de la SMS_TaskSequence.Steps propiedad de matriz.

Ejemplo

El método de ejemplo siguiente elimina una acción de la secuencia de tareas. La acción se identifica como una acción comprobando el __SUPERCLASS de la propiedad Instrumental de administración de Windows (WMI) para asegurarse de que se deriva de SMS_TaskSequenceAction.

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

Sub RemoveAction (connection, taskSequence, actionName)

    Dim i
    Dim newArray
    Dim actionStep

    If taskSequence.SystemProperties_("__CLASS")<>"SMS_TaskSequence" Then
        wscript.echo "Not a task sequence"
        Exit Sub
    End If

    if IsNull(taskSequence.Steps) Then
        Wscript.Echo "No steps"
        Exit Sub
    End If

    ' Create an array to hold copied steps.
    newArray = Array(taskSequence.Steps)
    ReDim newArray(UBound(taskSequence.Steps))

    ' Copy the steps into the array and remove the matching action.
    i=0
    for each  actionStep in taskSequence.Steps
        If actionStep.Name = actionName and _
          actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then
             ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array
        else
           Set newArray(i)=actionStep ' copy it
           i=i+1
        End If
     Next

     ' Assign new array back to the task sequence.
     taskSequence.Steps=newArray

End Sub
public void RemoveAction(
    IResultObject taskSequence,
    string actionName)
{
    try
    {
        // Get a list of steps.
        List<IResultObject> actionSteps = taskSequence.GetArrayItems("Steps");

        // Find the action to be deleted.
        foreach (IResultObject actionStep in actionSteps)
        {
            if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")
            {
                // Delete the action.
                actionSteps.Remove(actionStep);
                break;
            }
        }

        // Update the task sequence.
        taskSequence.SetArrayItems("Steps", actionSteps);
    }
    catch (Exception e)
    {
        Console.WriteLine("Failed to remove 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
Secuencia de tareas que contiene la acción que se va a eliminar.
actionName - Administrado: String
- VBScript: String
Nombre de la acción que se va a eliminar. Esto se puede obtener de la SMS_TaskSequenceAction.Name propiedad.

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 general sobre objetosCómo agregar una acción de secuencia de tareas de implementación del 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 WMI Introducción a la secuencia de tareas