Guide pratique pour créer un jeton de planification

Vous créez un jeton de planification, dans Configuration Manager, en créant et en remplissant une instance de la classe de jeton de planification appropriéeSMS_ST_. SMS_ST Les classes de planification sont des classes enfants de la SMS_ScheduleToken classe et gèrent la planification des événements avec des fréquences différentes, telles que quotidienne, hebdomadaire et mensuelle.

La classe SMS_ScheduleMethods Windows Management Instrumentation (WMI) et les méthodes ReadFromString et WriteToString correspondantes sont utilisées pour décoder et encoder des jetons de planification dans et à partir d’une chaîne d’intervalle. Les chaînes d’intervalle peuvent ensuite être utilisées pour définir des propriétés de planification lors de la définition ou de la modification d’objets. Vous trouverez un exemple de ceci dans la rubrique How to Create a Maintenance Window for a Collection où la ServiceWindowSchedules propriété est configurée.

Pour créer un jeton de planification et le convertir en chaîne d’intervalle

  1. Créez un objet de jeton de planification à l’aide de l’une des classes enfants SMS_ScheduleToken . Cet exemple utilise la classe SMS_ST_RecurInterval .

  2. Renseignez les propriétés du nouvel objet de jeton de planification.

  3. Convertissez l’objet de jeton de planification en chaîne d’intervalle à l’aide de la classe et WriteToString de la SMS_ScheduleMethods méthode .

  4. Utilisez la chaîne d’intervalle pour remplir les propriétés de planification d’un objet, selon les besoins.

Exemple

L’exemple de méthode suivant montre comment créer un jeton de planification en créant et en remplissant une instance de la SMS_ST_RecurInterval classe de jeton de planification. En outre, l’exemple montre comment convertir la planification en chaîne d’intervalle à l’aide de la classe et WriteToString de la SMS_ScheduleMethods méthode .

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


Sub CreateDailyRecurringScheduleString(connection,   _  
                                       hourDuration, _  
                                       daySpan,      _   
                                       startTime,    _  
                                       isGmt)  

    ' Create a new recurring interval schedule object.  
    ' Note: There are several types of schedule classes available, each defines a different type of schedule.  
    Set recurInterval = connection.Get("SMS_ST_RecurInterval").SpawnInstance_  

    ' Populate the schedule properties.  
    recurInterval.DayDuration = 0  
    recurInterval.HourDuration = hourDuration  
    recurInterval.MinuteDuration = 0  
    recurInterval.DaySpan = daySpan  
    recurInterval.HourSpan = 0  
    recurInterval.MinuteSpan = 0  
    recurInterval.StartTime = startTime  
    recurInterval.IsGMT = isGmt  

    ' Call WriteToString method to decode the schedule token.  
    ' Note: The initial parameter of the WriteToString method requires an array.   
    Set clsScheduleMethod = connection.Get("SMS_ScheduleMethods")  
    clsScheduleMethod.WriteToString Array(recurInterval), scheduleString  

    ' Output schedule token as an interval string.  
    WScript.Echo "Schedule Token Interval String: " & scheduleString  

End Sub  

public void CreateDailyRecurringScheduleToken(WqlConnectionManager connection,  
                                              int hourDuration,   
                                              int daySpan,  
                                              string startTime,  
                                              bool isGmt)    
{  
    try  
    {                  
        // Create a new recurring interval schedule object.  
        // Note: There are several types of schedule classes available, each defines a different type of schedule.  
        IResultObject recurInterval = connection.CreateEmbeddedObjectInstance("SMS_ST_RecurInterval");  

        // Populate the schedule properties.  
        recurInterval["DayDuration"].IntegerValue = 0;  
        recurInterval["HourDuration"].IntegerValue = hourDuration;  
        recurInterval["MinuteDuration"].IntegerValue = 0;  
        recurInterval["DaySpan"].IntegerValue = daySpan;  
        recurInterval["HourSpan"].IntegerValue = 0;  
        recurInterval["MinuteSpan"].IntegerValue = 0;  
        recurInterval["StartTime"].StringValue = startTime;         
        recurInterval["IsGMT"].BooleanValue = isGmt;  

        // Creating array to use as a parameters for the WriteToString method.  
        List<IResultObject> scheduleTokens = new List<IResultObject>();  
        scheduleTokens.Add(recurInterval);  

        // Creating dictionary object to pass parameters to the WriteToString method.  
        Dictionary<string, object> inParams = new Dictionary<string, object>();  
        inParams["TokenData"] = scheduleTokens;  

        // Initialize the outParams object.  
        IResultObject outParams = null;  

        // Call WriteToString method to decode the schedule token.  
        outParams = connection.ExecuteMethod("SMS_ScheduleMethods", "WriteToString", inParams);  

        // Output schedule token as an interval string.  
        // Note: The return value for this method is always 0, so this check is just best practice.  
        if (outParams["ReturnValue"].IntegerValue == 0)  
        {  
            Console.WriteLine("Schedule Token Interval String: " + outParams["StringData"].StringValue);  
        }  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
    }  
}  

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.
hourDuration -Géré: Integer
-Vbscript: Integer
Nombre d’heures pendant lesquelles l’action planifiée se produit. Les valeurs autorisées sont comprises entre 0 et 23. La valeur par défaut est 0, ce qui n’indique aucune durée.
daySpan -Géré: Integer
-Vbscript: Integer
Nombre de jours couvrant des intervalles de planification. Les valeurs autorisées sont comprises entre 0 et 31. La valeur par défaut est 0.
startTime - Géré : String (DateTime)
- VBScript : String (DateTime)
Date et heure auxquelles l’action planifiée a lieu. La valeur par défaut est « 19700201000000.000000+*** ». Il s’agit du format dans lequel les valeurs DATETIME CIM (WMI) sont stockées.
isGmt -Géré: Boolean
-Vbscript: Boolean
true si l’heure est en temps universel coordonné (UTC). La valeur par défaut est false, pour l’heure locale.

Compilation du code

L’exemple C# présente les exigences de compilation suivantes :

Espaces de noms

Système

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managmentprovider

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

Kit de développement logiciel Configuration Manager
Classe WMI du serveur SMS_ST_NonRecurring
Classe WMI du serveur SMS_ST_RecurInterval
Classe WMI du serveur SMS_ST_RecurMonthlyByDate
classe WMI du serveur SMS_ST_RecurMonthlyByWeekday
Classe WMI du serveur SMS_ST_RecurWeekly
Classe WMI du serveur SMS_ScheduleMethods
Méthode ReadFromString dans les SMS_ScheduleMethods de classe
Méthode WriteToString dans la SMS_ScheduleMethods de classe