Announcement

Collapse
No announcement yet.

WQL Abfrage auf EventLog "verschluckt" Nachrichten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WQL Abfrage auf EventLog "verschluckt" Nachrichten

    hallo,

    ich verwende folgenden quellcode (ist aus einem beispiel aus dem forum hier) um mir einträge aus dem ereignisprotokoll anzeigen zu lassen. leider bekomme ich bei windows xp nur leere Messages und bei win 2000 server teilweise nur leere messages zurückgeliefert. wo ist der fehler ?
    anmerkung: die gleiche abfrage im wmi-tool liefert auch eine leere message auf dem xp rechner und "vernünftige" messages auf dem 2000 rechner.

    <PRE>
    procedure CreateEventListForService (VAR EventListItems : TListItems; SourceName : String);
    VAR
    aLoc : ISWbemLocator;
    aSrv : ISWbemServices;
    aObjSet : ISWbemObjectSet;
    pEnum : IEnumVARIANT;
    vOut : OleVariant;
    dwRetrieved : LongWord;
    hRes : HResult;
    s : String;
    act_ListItem : TListItem;
    begin
    aLoc := CoSWbemLocator.Create;
    aSrv := aLoc.ConnectServer('','', '','','','',0, nil);
    aSrv.Security_.ImpersonationLevel := wbemImpersonationLevelImpersonate;
    aObjSet := aSrv.ExecQuery('SELECT EventType, Message, TimeGenerated ' +
    'FROM Win32_NTLogEvent WHERE Logfile="Application" AND SourceName="' + SourceName + '"',
    'WQL', 0, nil);
    pEnum := aObjSet.Get__NewEnum as IEnumVARIANT;
    while (TRUE) do
    begin
    hRes := pEnum.Next(1, vOut, dwRetrieved);
    if hRes <> S_OK then
    Break;
    act_ListItem := EventListItems.Add;
    s := Stringreplace(VarToStr(vOut.Message),#13,'',[rfReplaceAll, rfIgnoreCase]);
    s := Stringreplace(s,#10,'',[rfReplaceAll, rfIgnoreCase]);
    act_ListItem.Caption := s;
    act_ListItem.ImageIndex := vOut.EventType;
    act_ListItem.SubItems.Add(Copy(vOut.TimeGenerated, 7,2) + '.' + Copy(vOut.TimeGenerated,5,2) + '.' + Copy(vOut.TimeGenerated,1,4));
    act_ListItem.SubItems.Add(Copy(vOut.TimeGenerated, 9,2) + ':' + Copy(vOut.TimeGenerated,11,2) + ':' + Copy(vOut.TimeGenerated,13,2));
    end;
    end;</PRE>

  • #2
    Hallo,

    &gt;..die gleiche abfrage im wmi-tool liefert auch eine leere message..

    was wird auf dem XP-Rechner im Fenster der Eingabeaufforderung ausgeben, wenn das folgende Script über <i>cscript Test_WMI_NTEventLog.vbs</i> ausgeführt wird?
    <pre>
    strComputer = "P4XP"
    <br>
    Set wbemServices = GetObject("winmgmts:\\" & strComputer)
    Set wbemObjectSet = wbemServices.InstancesOf("Win32_NTLogEvent")
    <br>
    For Each wbemObject In wbemObjectSet
    WScript.Echo "Source: " & wbemObject.SourceName & vbCrLf & _
    "Message: " & wbemObject.Message & vbCrLf
    Next
    </pre&gt

    Comment


    • #3
      bei denen die für mich wichtig sind (hier: cronus) erscheint nichts:

      <pre>
      [...]
      Source: McLogEvent
      Message: VirusScan McShield-Dienst wurde gestartet - Suche nach 87990 Viren. Modul-Version: 4.3.20.DAT-Version: 4345 EXTRA.DAT-Name: None Anzahl an Virussignaturen in EXTRA.DAT: None Namen der Viren, die von EXTRA.DAT erkannt werden: None

      Source: PDFCreatorMessages
      Message:

      Source: CRONUS
      Message:

      Source: CRONUS
      Message:

      Source: AutoEnrollment
      Message: Die automatische Zertifikatregistrierung für "lokaler Computer" konnte keine Verbindung zum Active Directory (0x8007054b) herstellen. Die angegebene Domäne ist nicht vorhanden oder es konnte keine Verbindung hergestellt werden.
      Die Registrierung wird nicht durchgeführt.
      [...]
      </pre&gt

      Comment


      • #4
        Hallo,

        &gt;..erscheint nichts...

        aber in der <i>Ereignisanzeige</i> von Windows sind die Message-Einträge sichtbar? Wenn ja, gibt es dort irgend welche Auffälligkeiten? Wird zum Beispiel bei der Kategorie eine Zahl oder Text angezeigt

        Comment


        • #5
          interessanterweise zeigt er mir die beschreibungen von events mit kategorie "allgemein" immer an ... events der kategorie "keine" jedoch nicht. zusätzlich habe ich noch herausgefunden, dass ich auf der 2000 maschine dann die meldungen bekomme wenn das eventlog geleert und der entsprechende dienst frisch gestartet wird. dann scheint ihn die kategorie nicht zu stören ... sehr dubios :

          Comment


          • #6
            nachtrag: in der ereignisanzeige sind alle einträge mit den meldungen sichtbar

            Comment


            • #7
              Problem gefunden ... meine Anwendungen benutzen keine Standardmessages und füllen dann nur die Platzhalter mit einzelnen Werte sondern sie packen die ganze Message in den ersten Platzhalter (Array: InsertionString). Klingt komisch ... ist aber so :

              Comment

              Working...
              X