So löschen Sie eine Tasksequenzaktion für die Betriebssystembereitstellung

Sie löschen eine Tasksequenzaktion für die Betriebssystembereitstellung im Configuration Manager, indem Sie die Aktion aus den Tasksequenzschritten entfernen.

So löschen Sie eine Tasksequenzaktion

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Rufen Sie ein Tasksequenzobjekt (SMS_TaskSequence) ab. Weitere Informationen finden Sie unter So erstellen Sie eine Tasksequenz für die Betriebssystembereitstellung.

  3. Entfernt die Aktion aus der SMS_TaskSequence.Steps Arrayeigenschaft.

Beispiel

Mit der folgenden Beispielmethode wird eine Aktion aus der Tasksequenz gelöscht. Die Aktion wird als Aktion identifiziert, indem die Eigenschaft __SUPERCLASS der Windows-Verwaltungsinstrumentation (WMI) überprüft wird, um sicherzustellen, dass sie von SMS_TaskSequenceAction abgeleitet ist.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.

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

Die Beispielmethode hat die folgenden Parameter:

Parameter Typ Beschreibung
Connection - Verwaltet:WqlConnectionManager
- VBScript: SWbemDienste
Eine gültige Verbindung mit dem SMS-Anbieter.
taskSequence - Verwaltet: IResultObject
- VBScript: SWbemObject
Die Tasksequenz, welche die zu löschende Aktion enthält.
actionName - Verwaltet: String
- VBScript: String
Der Name der zu löschenden Aktion. Diese erhalten Sie bei der SMS_TaskSequenceAction.Name Immobilie.

Kompilieren des Codes

Dieses C#-Beispiel erfordert:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Sichern von Configuration Manager-Anwendungen finden Sie unter rollenbasierte Verwaltung von Configuration Manager.

Siehe auch

Objekte – ÜbersichtHinzufügen einer Betriebssystembereitstellung TasksequenzaktionHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von WMI Übersicht über Tasksequenzen