Erstellen eines Timerereignisses mit Win32_LocalTime oder Win32_UTCTime

Sie können das Standardmodell von systeminternen Ereignissen und Ereignisfiltern in Kombination mit den Win32_LocalTime- oder Win32_UTCTime-Klassen verwenden, um eine zeitlich festgelegte Benachrichtigung zu erhalten. Die systeminterne Methode ist eine empfohlene Möglichkeit zum Generieren von zeitlich festgelegten Ereignissen, da sie mit dem restlichen Microsoft-Ereignismodell konsistent ist und komplexe Zeitplanungsbedingungen unterstützt.

Die Win32_LocalTime- und Win32_UTCTime-Klassen sind Singleton-Klassen im Namespace root\cimv2, die die Systemuhr darstellen. Bei der Abfrage gibt Win32_LocalTime die aktuelle Uhrzeit zum Zeitpunkt des Datenabrufs im 24-Stunden-Format mit lokalem Verweis zurück. Die Win32_UTCTime-Klasse gibt die aktuelle Uhrzeit mit UTC-Verweis zurück.

So generieren Sie zeitlich festgelegte oder sich wiederholende Ereignisse mit Win32_LocalTime oder Win32_UTCTime

  • Richten Sie einen systeminternen Benachrichtigungsereignisfilter für Win32_LocalTime oder Win32_UTCTime ein, der eine Benachrichtigung für ein bestimmtes Datum und eine bestimmte Uhrzeit anfordert.

Wenn beispielsweise die Ortszeit in der Sommerzeit 16 Uhr und der Standort GMT -8 hat, gibt Win32_LocalTime.Hour 16 und Win32_UTCTime.Hour 23 zurück.

Im folgenden Codebeispiel wird beschrieben, wie Sie einen Ereignisfilter erstellen, der jeden Tag um Mitternacht ein sich wiederholendes Ereignis signalisiert.

// 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";
};