Partager via


Comment 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, dans Configuration Manager, en créant une instance d’une classe dérivée SMS_TaskSequence_Action, puis en l’ajoutant aux étapes de la séquence de tâches.

Remarque

Configuration Manager a 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 aux actions et aux groupes d’être stockés ensemble.

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

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions 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 de création d’une séquence de tâches de déploiement de système d’exploitation.

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

  4. Remplissez l’action comme il convient.

  5. Ajoutez l’action aux étapes des séquences de tâches. Il s’agit de la propriété Steps de la classe SMS_TaskSequence).

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 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 a 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
Séquence de tâches valide.
Name -Géré: String
-Vbscript: String
Nom de la nouvelle action.
Description -Géré: String
-Vbscript: String
Description de l’action.

Compilation du code

Cet exemple C# nécessite :

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, consultez À propos des erreurs Configuration Manager.

Sécurité de .NET Framework

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

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’exploitation
Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de code managé
Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de WMI
Comment créer un groupe de séquences de tâches de déploiement de système d’exploitation
Comment supprimer une action de séquence de tâches de déploiement de système d’exploitation
Vue d’ensemble de la séquence de tâches