Partage via


Guide pratique pour créer un package de séquence de tâches de déploiement de système d’exploitation

Vous créez une séquence de tâches de déploiement de système d’exploitation, dans Configuration Manager, en créant une instance de la classe SMS_TaskSequencePackage. Cette classe dérive de la classe SMS_Package et contient la séquence de tâches. Il est publié pour les clients qui peuvent ensuite exécuter la séquence de tâches. La séquence de tâches est associée au package de séquence de tâches à l’aide de la méthode SetSequence de la SMS_TaskSequencePackage classe .

Vous pouvez organiser des packages de séquence de tâches en catégories en leur affectant une catégorie avec la propriété Category de la classe SMS_TaskSequence.

Pour plus d’informations sur la création de séquences de tâches, consultez Guide pratique pour créer une séquence de tâches. Pour plus d’informations sur les packages de séquence de tâches, consultez le modèle objet séquencement de tâches.

Vous publiez un package de séquence de tâches de la même façon que vous publiez un package SMS_PackageConfiguration Manager . Pour plus d’informations, consultez Guide pratique pour créer une publication.

Pour créer un package de séquence de tâches

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez À propos du fournisseur SMS dans Configuration Manager.

  2. Créez une instance de SMS_TaskSequencePackage.

  3. Renseignez les propriétés du package de séquence de tâches.

  4. Appelez la SMS_TaskSequencePackage méthode de classe SetSequence pour associer une séquence de tâches (SMS_TaskSequence) au package de séquence de tâches.

Exemple

L’exemple de méthode suivant crée un package de séquence de tâches (SMS_TaskSequencePackage) et lui associe une séquence de tâches (SMS_TaskSequence).

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

Sub CreateTaskSequencePackage (connection, taskSequence)  

    Dim taskSequencePackage  
    Dim packageClass  
    Dim objInParams  
    Dim objOutParams  

    ' Create the new package object.  
    Set taskSequencePackage = connection.Get("SMS_TaskSequencePackage").SpawnInstance_  

    ' Populate the new package properties.  
    taskSequencePackage.Name = "New task sequence package"  
    taskSequencePackage.Description = "A new task sequence package description"  

    ' Get the parameters object.  
    Set packageClass = connection.Get("SMS_TaskSequencePackage")  

    Set objInParams = packageClass.Methods_("SetSequence"). _  
        inParameters.SpawnInstance_()  

    ' Add the input parameters.  
    objInParams.TaskSequence =  taskSequence  
    objInParams.TaskSequencePackage = taskSequencePackage  

    ' Add the sequence.  
     Set objOutParams = connection.ExecMethod("SMS_TaskSequencePackage", "SetSequence", objInParams)  

End Sub  

public IResultObject CreateTaskSequencePackage(  
    WqlConnectionManager connection,   
    IResultObject taskSequence)  
{  
    try  
    {  
        Dictionary<string, object> inParams = new Dictionary<string, object>();  

        // Create the new task sequence package.  
        IResultObject taskSequencePackage = connection.CreateInstance("SMS_TaskSequencePackage");  

        taskSequencePackage["Name"].StringValue = "New task sequence package";  
        taskSequencePackage["Description"].StringValue = "A brand new task sequence package";  
        taskSequencePackage["Category"].StringValue = "A custom category";  

        // Note. Add other package properties as required.  

        // Set up parameters that associate the task sequence with the package.  
        inParams.Add("TaskSequence", taskSequence);  
        inParams.Add("TaskSequencePackage", taskSequencePackage);  

        // Associate the task sequence with the package. Note that a call to Put is not required.  
        IResultObject result = connection.ExecuteMethod("SMS_TaskSequencePackage", "SetSequence", inParams);  

        // The path to the new package.  
        Console.WriteLine(result["SavedTaskSequencePackagePath"].StringValue);  

        return taskSequencePackage;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to create Task Sequence: " + 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é: IResultObject
- VBScript : SWbemObject
Séquence de tâches valide SMS_TaskSequence

Compilation du code

L’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
Comment créer une séquence de tâches
Vue d’ensemble de la séquence de tâches