Een taakreeksactie implementeren van een besturingssysteem verwijderen

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

Een takenreeksactie verwijderen

  1. Stel een verbinding in met de sms-provider. Zie Basisprincipes van sms-provider voor meer informatie.

  2. Een taakreeksobject (SMS_TaskSequence verkrijgen. Zie How to create an Operating System Deployment task Sequence (Een takenreeks voor de implementatie van een besturingssysteem maken) voor meer informatie.

  3. Verwijder de actie uit de SMS_TaskSequence.Steps matrixeigenschap.

Voorbeeld

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

Zie Codefragmenten van Configuration Manager aanroepen 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. Deze is te verkrijgen bij de SMS_TaskSequenceAction.Name woning.

De code compileren

Dit C#-voorbeeld vereist:

Naamruimten

Systeem

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

bijeenkomst

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuust programmeren

Zie Info over fouten in Configuration Manager voor meer informatie over foutafhandeling.

.NET Framework-beveiliging

Zie Rolgebaseerd beheer van Configuration Manager voor meer informatie over het beveiligen van Configuration Manager-toepassingen.

Zie ook

Overzicht van objectenEen taakvolgorde-actie voor de implementatie van een besturingssysteemtoevoegen Verbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde codeVerbinding maken met een SMS-provider in Configuration Manager met behulp van WMIOverzicht van de taakreeks