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 een besturingssysteemimplementatie
Verbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde code
Verbinding maken met een SMS-provider in Configuration Manager met behulp van WMI
Een takenreeksgroep voor besturingssysteemimplementatie maken
Een takenreeksactie voor een besturingssysteemimplementatie verwijderen
Takenreeksoverzicht