Lesen Sie das Windows-Ereignisprotokoll mit C# (Quelle != ProviderName != SourceName)
Ich bin mit C# zu Lesen, das Windows-Ereignisprotokoll, und ich will wählen/filter-Einträge aus. Das problem ist, dass die Informationen in der Ereignisanzeige ist nicht immer passend zu den Daten, die ich von c#.
Beispiel:
EventViewer "Source": "User Profile Service"
Mithilfe der EventLogEntry-Klasse: Eigenschaft "Source": "Microsoft-Windows-User Profile Service"
Mithilfe der EventLogReader Klasse: Eigenschaft "ProviderName": "Microsoft-Windows-User Profile Service"
Mithilfe von WMI: "SourceName": "Microsoft-Windows-User Profile Service"
Ich muss in der Lage sein, um Lesen Sie die genauen Informationen in den EventViewer, wo bekomme ich diese Informationen aus?
Lesen Sie die EventLog-Meldung...
Beim Lesen der EventLog-Meldung über das EventLogEntry-Klasse, ich gelegentlich erhalten Sie die folgende Zeichenfolge:
Die Beschreibung für die Ereignis-ID "xxx" in-Source "xxx" nicht gefunden werden kann
Wieder, dies entspricht nicht der Meldung im EventViewer... ich habe versucht mit der EventLogReader.FormatDescription () - Methode und es gibt mir das Recht (der gleiche wie der EventViewer) Nachricht, ABER für einige Einträge, die es einfach gibt null zurück, während die EventLogEntry.Nachricht enthält den richtigen text.
Was ist der richtige Weg, um die Nachricht abzurufen von der Veranstaltung bekommen die gleiche Meldung wie angezeigt in den EventViewer?
InformationsquelleAutor flayn | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass ist eine Recht einfache Beute an die Interaktion mit dem log. Wenn Sie brauchen, tiefer zu filtern, die Quelle, Sie können schreiben Sie eine LINQ-Abfrage auf die Einträge. Wie gezeigt hier.
Als für den Fehler, ein häufiger Grund ist, nicht mit den richtigen Zugang zu den Ereignissen und/oder die Registrierung auf der box in Frage. Da können Sie Daten in Frage, die im EventViewer, ich bin zu Ahnen, einen berechtigungsfehler ist eine gute Möglichkeit.
InformationsquelleAutor Gregory A Beamer
Scheint es, dass die "Source" - Zeichenfolge in der "Quelle" Spalte in der Ereignis-Viewer ist abgekürzt. Auch scheint es, dass, wenn Sie versuchen, erstellen Sie eine EventLog-in C# nur die logtype Angelegenheiten, z.B. "Anwendung", "System" usw.. Sobald Sie erstellen Sie eine EventLog-es enthält alle Einträge für die logtype unabhängig davon, was Ihnen angegebene Quelle.
Um ein Ereignis auf der Grundlage der "Quelle" willst du das iterieren über die Einträge und filtern Sie nur die Einträge für die "Quelle". Nur im Kopf behalten, dass der eigentliche name der Quelle ist nicht die gleiche wie das, was Sie sehen in der Ereignisanzeige. Zum Beispiel für die Quelle "Winlogon" die eigentliche Quelle würde der name: "Microsoft-Windows-Winlogon" und so weiter.
InformationsquelleAutor wildriver