Freigeben über


Löschen einer Tasksequenzaktion für die Betriebssystembereitstellung

Sie löschen eine Tasksequenzaktion für die Betriebssystembereitstellung in 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. Abrufen eines Tasksequenzobjekts (SMS_TaskSequence). Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.

  3. Entfernen Sie die Aktion aus der SMS_TaskSequence.Steps Arrayeigenschaft.

Beispiel

Die folgende Beispielmethode löscht eine Aktion aus der Tasksequenz. Die Aktion wird als Aktion identifiziert, indem die WMI-Eigenschaft (Windows Management Instrumentation) __SUPERCLASS überprüft wird, um sicherzustellen, dass sie von SMS_TaskSequenceAction abgeleitet wird.

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 verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
Connection -Verwalteten:WqlConnectionManager
– VBScript: SWbemServices
Eine gültige Verbindung mit dem SMS-Anbieter.
taskSequence -Verwalteten: IResultObject
– VBScript: SWbemObject
Die Tasksequenz, die die zu löschende Aktion enthält.
actionName -Verwalteten: String
-Vbscript: String
Der Name der aktion, die gelöscht werden soll. Dies kann über die SMS_TaskSequenceAction.Name -Eigenschaft abgerufen werden.

Kompilieren des Codes

Für dieses C#-Beispiel ist Folgendes erforderlich:

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 Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

Objektübersicht: Hinzufügen einer Tasksequenzaktion für die Betriebssystembereitstellung
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI
Übersicht über Aufgabensequenzen