Delen via


Een takenreeksactie voor de implementatie van een besturingssysteem toevoegen

Een takenreeksactie voor de implementatie van het besturingssysteem wordt toegevoegd aan een takenreeks, in Configuration Manager, door een exemplaar van een SMS_TaskSequence_Action afgeleide klasse te maken en deze vervolgens toe te voegen aan de stappen van de takenreeks.

Opmerking

Configuration Manager heeft een aantal ingebouwde acties die u kunt gebruiken. De opdrachtregelactieklasse is bijvoorbeeld SMS_TaskSequence_RunCommandLineAction. Deze klassen zijn afgeleid van de klasse SMS_TaskSequence_Action .

SMS_TaskSequenceAction is afgeleid van de klasse SMS_TaskSequence_Step , de basisklasse voor zowel acties als groepen. De takenreeks slaat de stappen op in een matrix van SMS_TaskSequence_Step, zodat acties en groepen samen kunnen worden opgeslagen.

Een takenreeksactie toevoegen

  1. Een verbinding met de SMS-provider instellen. Zie Basisprincipes van SMS-provider voor meer informatie.

  2. Een takenreeksobject (SMS_TaskSequence) maken. Zie Een takenreeks voor besturingssysteemimplementatie maken voor meer informatie.

  3. Maak een SMS_TaskSequenceAction afgeleide klasse-instantie, bijvoorbeeld SMS_TaskSequence_RunCommandLineAction, voor de gewenste actie.

  4. Vul de actie zo nodig in.

  5. Voeg de actie toe aan de takenreeksstappen. De eigenschap Stappen van de klasse SMS_TaskSequence) wordt opgeslagen.

Voorbeeld

Met de volgende voorbeeldmethode wordt een opdrachtregelactie gemaakt en toegevoegd aan de opgegeven takenreeks.

Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.

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

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
Een geldige takenreeks.
Name -Beheerd: String
- VBScript: String
Een naam voor de nieuwe actie.
Description -Beheerd: String
- VBScript: String
Een beschrijving voor de actie.

De code compileren

Voor dit C#-voorbeeld is het volgende vereist:

Naamruimten

Systeem

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Vergadering

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuust programmeren

Zie Over Configuration Manager fouten voor meer informatie over foutafhandeling.

.NET Framework Beveiliging

Zie Configuration Manager op rollen gebaseerd beheer voor meer informatie over het beveiligen van Configuration Manager toepassingen.

Zie ook

Overzicht van objectenEen voorwaarde toevoegen aan een takenreeksstap Voor implementatie van een besturingssysteemverbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde codeVerbinding maken met een SMS-provider in Configuration Manager met behulp van WMIEen takenreeksgroepvoor de implementatie van het besturingssysteem makenOverzicht van takenreeksacties voor het verwijderen van een besturingssysteemimplementatie