Freigeben über


Hinzufügen einer Tasksequenzaktion für die Betriebssystembereitstellung

Eine Tasksequenzaktion für die Betriebssystembereitstellung wird einer Tasksequenz in Configuration Manager hinzugefügt, indem eine Instanz einer SMS_TaskSequence_Action abgeleiteten Klasse erstellt und dann den Schritten der Tasksequenz hinzugefügt wird.

Hinweis

Configuration Manager verfügt über eine Reihe von integrierten Aktionen, die Sie verwenden können. Beispielsweise ist die Befehlszeilenaktionsklasse SMS_TaskSequence_RunCommandLineAction. Diese Klassen werden von der SMS_TaskSequence_Action-Klasse abgeleitet.

SMS_TaskSequenceAction wird von der SMS_TaskSequence_Step-Klasse abgeleitet, die die Basisklasse sowohl für Aktionen als auch für Gruppen ist. Die Tasksequenz speichert ihre Schritte in einem Array von SMS_TaskSequence_Step, sodass Aktionen und Gruppen zusammen gespeichert werden können.

So fügen Sie eine Tasksequenzaktion hinzu

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

  2. Erstellen Sie ein Tasksequenzobjekt (SMS_TaskSequence). Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.

  3. Erstellen Sie eine SMS_TaskSequenceAction abgeleitete Klasseninstanz, z. B. SMS_TaskSequence_RunCommandLineAction, für die gewünschte Aktion.

  4. Füllen Sie die Aktion nach Bedarf auf.

  5. Fügen Sie die Aktion den Tasksequenzschritten hinzu. Dies wird in der Steps-Eigenschaft der SMS_TaskSequence)-Klasse gespeichert.

Beispiel

Die folgende Beispielmethode erstellt eine Befehlszeilenaktion und fügt sie der angegebenen Tasksequenz hinzu.

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

Sub AddTaskSequenceActionCommandLine(connection, taskSequence, name, description)     

    Dim steps  
    Dim action    

    Set action = connection.Get("SMS_TaskSequence_RunCommandLineAction").SpawnInstance_  

    action.CommandLine = "cmd /c Echo Hello"  
    action.Name=name  
    action.Description=description  
    action.Enabled=True  
    action.ContinueOnError=False  

      If IsNull(taskSequence.Steps) Then  
        steps = Array(action)  
        taskSequence.Steps=steps  
    Else  
        steps= Array(taskSequence.Steps)  
        ReDim steps (UBound (taskSequence.Steps)+1)   
        taskSequence.Steps(UBound(steps))=action  
    End if    

End Sub  

public IResultObject AddTaskSequenceActionCommandLine(  
    WqlConnectionManager connection,   
    IResultObject taskSequence,  
    string name,   
    string description)  
{  
    try  
    {  
        // Create the new step.  
        IResultObject ro;  

        ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");  
        ro["CommandLine"].StringValue = @"cmd /c Echo Hello";  

        ro["Name"].StringValue = name;  
        ro["Description"].StringValue = description;  
        ro["Enabled"].BooleanValue = true;  
        ro["ContinueOnError"].BooleanValue = false;  

        // Add the step to the task sequence.  
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");  

        array.Add(ro);  

        taskSequence.SetArrayItems("Steps", array);  

        return ro;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to add 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
Eine gültige Tasksequenz.
Name -Verwalteten: String
-Vbscript: String
Ein Name für die neue Aktion.
Description -Verwalteten: String
-Vbscript: String
Eine Beschreibung für die Aktion

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 Bedingung zu einem Tasksequenzschritt 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
Erstellen einer Tasksequenzgruppe für die Betriebssystembereitstellung
Löschen einer Tasksequenzaktion für die Betriebssystembereitstellung
Übersicht über Aufgabensequenzen