Compartir a través de


Procedimiento para 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 secuencia de tareas.

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

Ejemplo

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

Para obtener información sobre cómo llamar al código de ejemplo, vea 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 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 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 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 acción 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
Introducción a la secuencia de tareas