Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.613 Beiträge
 
#5

Re: WMI sofort EventLog bemerken

  Alt 14. Okt 2008, 12:34
Erstmal das hier: http://www.delphipraxis.net/internal...=744614#744614

So. Und dann kannst Du änderungen an WMI-Objekten auch mit WQL abfragen.
Das Prinzip ist (für C++) hier erklärt: http://msdn.microsoft.com/en-us/library/aa390425(VS.85).aspx

Im Prinzip ist das Folgendes:

SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_NTLogEvent' AND TargetInstance.LogFile="Application"

Das ganze rufst Du asynchron auf (Mittels TWmiEventSink aus der WMI Scripting TLB). Dort bekommst Du dann immer die neuen Instanzen der WMI-Objekte pro änderungen in einem Event. Die 10 im Statement sind Sekunden, das heisst hier pollt der WMI-Dienst (nicht Deine Anwendung, das erzeugt also Last auf dem verbundenen Server!) alle 10 Sekunden. Viel drunter würde ich nicht gehen, WMI ist nicht gerade das Schnelleste was es gibt. Hinterher bitte nicht vergessen, das Query auch wieder zu beenden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat