Crear un evento de temporizador con Win32_LocalTime o Win32_UTCTime

Puede usar el modelo estándar de eventos intrínsecos y filtros de eventos en combinación con las clases Win32_LocalTime o Win32_UTCTime para recibir una notificación con tiempo. El método intrínseco es una manera recomendada de generar eventos con tiempo, ya que es coherente con el resto del modelo de eventos de Microsoft y admite condiciones de programación complejas.

Las clases Win32_LocalTime y Win32_UTCTime son clases singleton en el espacio de nombres root\cimv2 que representa el reloj del sistema. Cuando se consulta, Win32_LocalTime devuelve la hora actual en el momento de la recuperación de datos en un reloj de 24 horas con referencia local. La clase Win32_UTCTime devuelve la hora actual con referencia UTC.

Para generar eventos con tiempo o repetición con Win32_LocalTime o Win32_UTCTime

  • Configure un filtro de eventos de notificación intrínseco para Win32_LocalTime o Win32_UTCTime que solicite notificación para una fecha y hora específicas.

Por ejemplo, si la hora local en Horario de verano es 4 p.m. y la ubicación es GMT -8, Win32_LocalTime.Hour devuelve 16 y Win32_UTCTime.Hour devuelve 23.

En el ejemplo de código siguiente se describe cómo crear un filtro de eventos que señale un evento repetido todos los días a medianoche.

// Win32_LocalTime and Win32_UTCTime reside in root\cimv2 namespace. 
// Defining the EventNamespace allows the filter
// to be compiled in any namespace.
instance of __EventFilter as $FILT1
{
 Name  = "wake-up call";
 Query = "SELECT * FROM __InstanceModificationEvent WHERE "    
 "TargetInstance ISA \"Win32_LocalTime\" AND "
 "TargetInstance.Hour = 0 AND TargetInstance.Minute = 0 AND "
 "TargetInstance.Second = 0";
 QueryLanguage = "WQL";
 EventNamespace = "root\\cimv2";
};