So fügen Sie eine Tasksequenzaktion für die Betriebssystembereitstellung hinzu

Eine Tasksequenzaktion für die Betriebssystembereitstellung wird Configuration Manager einer Tasksequenz hinzugefügt, indem eine instance einer von SMS_TaskSequence_Action abgeleiteten Klasse erstellt und anschließend den Schritten der Tasksequenz hinzugefügt wird.

Hinweis

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

SMS_TaskSequenceAction wird von der Klasse SMS_TaskSequence_Step abgeleitet, die die Basisklasse für Aktionen und 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 So erstellen Sie eine Tasksequenz für die Betriebssystembereitstellung.

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

  4. Füllen Sie die Aktion entsprechend aus.

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

Beispiel

Mit der folgenden Beispielmethode wird eine Befehlszeilenaktion erstellt und der bereitgestellten Tasksequenz hinzugefügt.

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 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
Eine gültige Tasksequenz.
Name - Verwaltet: String
- VBScript: String
Ein Name für die neue Aktion.
Description - Verwaltet: String
- VBScript: String
Eine Beschreibung für die Aktion

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 – ÜbersichtSo fügen Sie einer Betriebssystembereitstellung eine Bedingung hinzu Tasksequenzschritt So stellen Sie mithilfe von verwaltetem Code eine Verbindung mit einem SMS-Anbieter im Configuration Managerher Herstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von WMISo erstellen Sie eine Tasksequenzgruppefür die BetriebssystembereitstellungSo löschen Sie eine Betriebssystembereitstellung TasksequenzaktionÜbersicht über die Tasksequenz