Compartir a través de


Creación de un token de programación

Cree un token de programación, en Configuration Manager, creando y rellenando una instancia de la clase de token de programación adecuadaSMS_ST_. SMS_ST las clases de programación son clases secundarias de la SMS_ScheduleToken clase y controlan la programación de eventos con frecuencias diferentes, como diaria, semanal y mensual.

La clase SMS_ScheduleMethods Instrumental de administración de Windows (WMI) y los métodos ReadFromString y WriteToString correspondientes se usan para descodificar y codificar tokens de programación dentro y desde una cadena de intervalo. A continuación, las cadenas de intervalo se pueden usar para establecer las propiedades de programación al definir o modificar objetos. Un ejemplo de esto se puede ver en el tema How to Create a Maintenance Window for a Collection (Cómo crear una ventana de mantenimiento para una colección ) donde se configura la ServiceWindowSchedules propiedad .

Para crear un token de programación y convertirlo en una cadena de intervalo

  1. Cree un objeto de token de programación mediante una de las clases secundarias SMS_ScheduleToken . En este ejemplo se usa la clase SMS_ST_RecurInterval .

  2. Rellene las propiedades del nuevo objeto de token de programación.

  3. Convierta el objeto de token de programación en una cadena de intervalo mediante la clase y WriteToString el SMS_ScheduleMethods método .

  4. Use la cadena de intervalo para rellenar las propiedades de programación de un objeto, según sea necesario.

Ejemplo

El siguiente método de ejemplo muestra cómo crear un token de programación mediante la creación y rellenación de una instancia de la SMS_ST_RecurInterval clase de token de programación. Además, en el ejemplo se muestra cómo convertir la programación en una cadena de intervalo mediante la clase y WriteToString el SMS_ScheduleMethods método .

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de 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);
    }
}

El método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
connection -Administrado: WqlConnectionManager
- VBScript: SWbemServices
Una conexión válida al proveedor de SMS.
hourDuration -Administrado: Integer
- VBScript: Integer
Número de horas durante las que se produce la acción programada. Los valores permitidos están en el intervalo 0-23. El valor predeterminado es 0, lo que indica que no hay duración.
daySpan -Administrado: Integer
- VBScript: Integer
Número de días que abarcan intervalos de programación. Los valores permitidos están en el intervalo 0-31. El valor predeterminado es 0.
startTime - Administrado: String (DateTime)
- VBScript: String (DateTime)
Fecha y hora en que tiene lugar la acción programada. El valor predeterminado es "197002010000000.000000+***". Este es el formato en el que se almacenan los valores DATETIME DE CIM (WMI).
isGmt -Administrado: Boolean
- VBScript: Boolean
true es si la hora está en hora universal coordinada (UTC). El valor predeterminado es false, para la hora local.

Compilar el código

El ejemplo de C# tiene los siguientes requisitos de compilación:

Espacios de nombres

System

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managmentprovider

adminui.wqlqueryengine

Programación sólida

Para obtener más información sobre el control de errores, vea Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.

Consulta también

Configuration Manager Kit de desarrollo de softwareSMS_ST_NonRecurring clase WMI de servidorSMS_ST_RecurInterval clase WMI de servidorSMS_ST_RecurMonthlyByDate clase WMI de servidorSMS_ST_RecurMonthlyByWeekday clase WMI de servidorSMS_ST_RecurWeekly clase WMI de servidor SMS_ScheduleMethods método ReadFromString de clase WMI de servidoren la clase SMS_ScheduleMethodsMétodo WriteToString en la clase SMS_ScheduleMethods