Partage via


Guide pratique pour définir une variable de séquence de tâches de déploiement de système d’exploitation

Dans Configuration Manager, vous créez une variable de séquence de tâches de déploiement de système d’exploitation en créant une instance de la classe SMS_TaskSequence_SetVariableAction, en ajoutant à une séquence de tâches. Vous pouvez également créer des variables de séquence de tâches pendant que la séquence de tâches est en cours d’exécution sur le client. Pour plus d’informations, consultez Guide pratique pour utiliser des variables de séquence de tâches dans une séquence de tâches Configuration Manager en cours d’exécution.

Une variable de séquence de tâches est une paire nom/valeur à laquelle vous pouvez accéder par étapes de séquence de tâches. Vous pouvez également créer des variables spécifiques à l’ordinateur et au regroupement. Pour plus d’informations, consultez How to Create a Collection Variable in Configuration Manager et How to Create a Computer Variable in Configuration Manager.

Remarque

Les variables définies avec la classe SMS_TaskSequence_SetVariableAction remplacent les variables définies ailleurs. Par exemple, si une variable de collection et une SMS_TaskSequence_SetVariableAction portent le même nom, la valeur de la variable SMS_TaskSequence_SetVariableAction est prioritaire.

Pour définir une variable 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. Obtenir une séquence de tâches à laquelle ajouter la variable de séquence de tâches. 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 SMS_TaskSequence_SetVariableAction.

  4. Définissez les propriétés VariableName et VariableValue pour la variable que vous ajoutez.

  5. Ajoutez l’objet SMS_TaskSequence_SetVariableAction à la séquence de tâches.

Exemple

L’exemple de méthode suivant définit un nom et une valeur de variable de séquence de tâches.

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

Sub AddTaskSequenceVariable(connection, taskSequence, variableName, variableValue)     

    Dim variable  
    Dim steps  

    Set variable = connection.Get("SMS_TaskSequence_SetVariableAction").SpawnInstance_  

    variable.Name="MyTaskSequenceVariable"  
    variable.Description = "A task sequence variable"  
    variable.Enabled=True  
    variable.ContinueOnError=False  
    variable.VariableName=variableName  
    variable.VariableValue=variableValue  

    steps= Array(taskSequence.Steps)  

    ReDim steps (UBound (taskSequence.Steps)+1)    

    taskSequence.Steps(UBound(steps))=variable  

End Sub  
public void AddTaskSequenceVariable(  
    WqlConnectionManager connection,   
    IResultObject taskSequence,   
    string variableName,   
    string variableValue)  
{  
    try  
    {  
        // Create the task sequence variable object.  
        IResultObject variable = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_SetVariableAction");  

        // Populate the properties.  
        variable["Name"].StringValue = "MyTaskSequenceVariable";  
        variable["ContinueOnError"].BooleanValue = false;  
        variable["Description"].StringValue = "A task sequence variable set with SMS_TaskSequence_SetVariableAction";  
        variable["Enabled"].BooleanValue = true;  
        variable["VariableName"].StringValue = variableName;  
        variable["VariableValue"].StringValue = variableValue;  

        // Add the step to the task sequence.  
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");  

        array.Add(variable);  
        taskSequence.SetArrayItems("Steps", array);  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to set task sequence variable: " + e.Message);  
        throw;  
    }  
}  

Cet 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é: WqlConnectionManager
-Vbscript: SWbemServices
- Séquence de tâches à laquelle la variable est ajoutée.
variableName -Géré: String
-Vbscript: String
Nom de la variable.
variableValue -Géré: String
-Vbscript: String
Valeur de la variable.

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 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
Vue d’ensemble de la séquence de tâches Comment utiliser des variables de séquence de tâches dans une séquence de tâches Configuration Manager en cours d’exécution
Guide pratique pour lire une séquence de tâches à partir d’un package de séquences de tâches