Como criar um token de agendamento

Você cria um token de agendamento, em Configuration Manager, criando e preenchendo uma instância da classe de token de agendamento apropriadaSMS_ST_. SMS_ST as aulas de agendamento são classes filho da SMS_ScheduleToken classe e lidam com o agendamento de eventos com frequências diferentes, como diárias, semanais e mensais.

Os SMS_ScheduleMethods classe WMI (Instrumentação de Gerenciamento do Windows) e os métodos ReadFromString e WriteToString correspondentes são usados para decodificar e codificar tokens de agendamento de uma cadeia de caracteres de intervalo. Em seguida, as cadeias de caracteres de intervalo podem ser usadas para definir propriedades de agendamento ao definir ou modificar objetos. Um exemplo disso pode ser visto no tópico Como criar uma janela de manutenção para uma coleção em que a ServiceWindowSchedules propriedade está configurada.

Para criar um token de agendamento e convertê-lo em uma cadeia de caracteres de intervalo

  1. Crie um objeto de token de agendamento usando uma das classes filho SMS_ScheduleToken . Este exemplo usa a classe SMS_ST_RecurInterval .

  2. Preencha as propriedades do novo objeto de token de agendamento.

  3. Converta o objeto de token de agendamento em uma cadeia de caracteres de intervalo usando a classe e WriteToString o SMS_ScheduleMethods método.

  4. Use a cadeia de caracteres de intervalo para preencher as propriedades de agenda de um objeto, conforme necessário.

Exemplo

O método de exemplo a seguir mostra como criar um token de agendamento criando e populando uma instância da SMS_ST_RecurInterval classe de token de agendamento. Além disso, o exemplo mostra como converter o agendamento em uma cadeia de caracteres de intervalo usando a classe e WriteToString o SMS_ScheduleMethods método.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.


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);  
    }  
}  

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection -Gerenciado: WqlConnectionManager
- VBScript: SWbemServices
Uma conexão válida com o provedor de SMS.
hourDuration -Gerenciado: Integer
-Vbscript: Integer
Número de horas durante as quais a ação agendada ocorre. Os valores permitidos estão no intervalo de 0 a 23. O valor padrão é 0, indicando nenhuma duração.
daySpan -Gerenciado: Integer
-Vbscript: Integer
Número de dias que abrangem intervalos de agendamento. Os valores permitidos estão no intervalo de 0 a 31. O valor padrão é 0.
startTime – Gerenciado: String (DateTime)
- VBScript: String (DateTime)
Data e hora em que a ação agendada ocorre. O valor padrão é "1970020100000.000000+***". Este é o formato no qual os valores CIM DATETIME (WMI) são armazenados.
isGmt -Gerenciado: Boolean
-Vbscript: Boolean
true se a hora estiver em UTC (Tempo Universal Coordenado). O valor padrão é false, para hora local.

Compilando o código

O exemplo C# tem os seguintes requisitos de compilação:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managmentprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.

Confira também

Configuration Manager Kit de Desenvolvimento de Software
Classe WMI do servidor SMS_ST_NonRecurring
Classe WMI do servidor SMS_ST_RecurInterval
Classe WMI do servidor SMS_ST_RecurMonthlyByDate
Classe WMI do servidor SMS_ST_RecurMonthlyByWeekday
Classe WMI do servidor SMS_ST_RecurWeekly
Classe WMI do servidor SMS_ScheduleMethods
Método ReadFromString na classe SMS_ScheduleMethods
Método WriteToString na classe SMS_ScheduleMethods