Procédure pour ajouter une action de séquence de tâches de déploiement de système d’exploitation

Une action de séquence de tâches de déploiement de système d’exploitation est ajoutée à une séquence de tâches, en Configuration Manager, en créant un instance d’une classe dérivée de SMS_TaskSequence_Action, puis en l’ajoutant aux étapes de la séquence de tâches.

Remarque

Configuration Manager dispose d’un certain nombre d’actions intégrées que vous pouvez utiliser. Par exemple, la classe d’action de ligne de commande est SMS_TaskSequence_RunCommandLineAction. Ces classes dérivent de la classe SMS_TaskSequence_Action .

SMS_TaskSequenceAction dérive de la classe SMS_TaskSequence_Step , qui est la classe de base pour les actions et les groupes. La séquence de tâches stocke ses étapes dans un tableau de SMS_TaskSequence_Step, ce qui permet de stocker les actions et les groupes ensemble.

Pour ajouter une action de séquence de tâches

  1. Établissez une connexion au fournisseur SMS. Pour plus d’informations, consultez Principes de base du fournisseur SMS.

  2. Créez un objet de séquence de tâches (SMS_TaskSequence). Pour plus d’informations, consultez Procédure pour créer une séquence de tâches de déploiement de système d’exploitation.

  3. Créez une classe dérivée SMS_TaskSequenceAction instance, par exemple, SMS_TaskSequence_RunCommandLineAction, pour l’action souhaitée.

  4. Renseignez l’action en fonction des besoins.

  5. Ajoutez l’action aux étapes de séquences de tâches. Ceci est stocké dans la propriété SMS_TaskSequence) class Steps.

Exemple

L’exemple de méthode suivant crée une action de ligne de commande et l’ajoute à la séquence de tâches fournie.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code de Configuration Manager.

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

L’exemple de méthode contient les paramètres suivants :

Paramètre Type Description
connection - Géré : WqlConnectionManager
- VBScript : SWbemServices
Connexion valide au fournisseur SMS.
taskSequence - Géré : IResultObject
- VBScript : SWbemObject
Une séquence de tâches valide.
Name - Géré : String
- VBScript : String
Nom pour la nouvelle action.
Description - Géré : String
- VBScript : String
Description de l’action.

Compilation du code

Cet exemple C# requiert :

Espaces de noms

Système

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

Microsoft.ConfigurationManagement.ManagementProvider

adminui.wqlqueryengine

Programmation robuste

Pour plus d’informations sur la gestion des erreurs, voir À propos des erreurs du Configuration Manager.

Sécurité de .NET Framework

Pour plus d’informations sur la sécurisation des applications Configuration Manager, voir Administration basée sur les rôles de Configuration Manager.

Voir aussi

Vue d’ensemble des objetsComment ajouter une condition à une étape de séquence de tâches de déploiement de système d’exploitationComment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de code managéComment se connecter à un fournisseur SMS dans le Configuration Manager à l’aide de WMIComment créer un groupe de séquences de tâches de déploiement de système d’exploitationProcédure pour supprimer un déploiement de système d’exploitation Action de séquence de tâchesVue d’ensemble de la séquence de tâches