Delen via


Een takenreeksactie voor een besturingssysteemimplementatie verwijderen

U verwijdert een takenreeksactie van het besturingssysteem in Configuration Manager door de actie uit de takenreeksstappen te verwijderen.

Een takenreeksactie verwijderen

  1. Een verbinding met de SMS-provider instellen. Zie Basisprincipes van SMS-provider voor meer informatie.

  2. Een takenreeksobject (SMS_TaskSequence) verkrijgen. Zie Een takenreeks voor besturingssysteemimplementatie maken voor meer informatie.

  3. Verwijder de actie uit de SMS_TaskSequence.Steps eigenschap matrix.

Voorbeeld

Met de volgende voorbeeldmethode wordt een actie uit de takenreeks verwijderd. De actie wordt geïdentificeerd als een actie door de eigenschap Windows Management Instrumentation (WMI) __SUPERCLASS te controleren om te controleren of deze afkomstig is van SMS_TaskSequenceAction.

Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.

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

De voorbeeldmethode heeft de volgende parameters:

Parameter Type Beschrijving
Connection -Beheerd:WqlConnectionManager
- VBScript: SWbemServices
Een geldige verbinding met de SMS-provider.
taskSequence -Beheerd: IResultObject
- VBScript: SWbemObject
De takenreeks met de actie die moet worden verwijderd.
actionName -Beheerd: String
- VBScript: String
De naam van de actie die moet worden verwijderd. Dit kan worden verkregen van de SMS_TaskSequenceAction.Name eigenschap.

De code compileren

Voor dit C#-voorbeeld is het volgende vereist:

Naamruimten

Systeem

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Vergadering

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuust programmeren

Zie Over Configuration Manager fouten voor meer informatie over foutafhandeling.

.NET Framework Beveiliging

Zie Configuration Manager op rollen gebaseerd beheer voor meer informatie over het beveiligen van Configuration Manager toepassingen.

Zie ook

Overzicht van objectenEen takenreeksactie voor een besturingssysteemimplementatie toevoegenVerbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde codeVerbinding maken met een SMS-provider in Configuration Manager met WMI-takenreeksoverzicht