Partager 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 un 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 un 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 d’une séquence de tâches WMI Vue d’ensembleComment utiliser des variables de séquence de tâches dans une tâche Configuration Manager en cours d’exécution SéquenceGuide pratique pour lire une séquence de tâches à partir d’un package de séquences de tâches