Frage

Gibt es eine bestimmte Reihe von Ereignis -IDs in Windows, die für Anwendungsentwickler reserviert sind?

Ich arbeite an einer .NET -Anwendung, die Fehler in das Windows -Ereignisprotokoll schreibt. Diese Anwendung richtet sich tatsächlich an Server und wird von paranoiden Systemen als geplante Aufgabe ausgeführt, die sie so weit wie möglich abschließen möchten (einschließlich des Ausführens mit einem reduzierten Berechtigungs -Wartungskonto). Die App wird nicht offiziell installiert - tatsächlich baue ich nicht einmal einen Installateur dafür. Nur eine ZIP -Datei mit der Datei .exe und App.config.

Hier ist der Trick: In Windows benötigen Sie Administratorrechte, um eine Quelle im Anwendungsereignisprotokoll zu erstellen. Da ich mich nicht darauf verlassen kann und nicht überarbeitete Systeme machen möchte, müssen Administratoren einen erstellen, verwende ich "Anwendungsfehler" (von MS Office verwendet) als Fallback. (Die Auswahl eines besseren Fallbacks ist in meiner Todo -Liste, da das Büro nicht so oft auf Servern installiert ist).

Das Problem ist, dass ich immer noch möchte, dass meine Ereignisse ein bisschen auffallen, anstatt sich nur als Büro zu tarnen. Auf diese Weise können meine SYS -Administratoren einfach nur auf diese Ereignisse in Event -Zuschauer oder zum Protokollaggregator ihrer Wahl filtern. Die beste Lösung, die mir im Moment bekannt ist, ist die Verwendung der Ereignis -ID, aber ich mache mir Sorgen, dass ich mit internen Windows -Ereignissen widersprüchlich bin, insbesondere angesichts meiner Zielgruppe.

Ich habe gesucht, aber ich kann keine Dokumentation dazu finden. Gibt es also eine bestimmte Reihe von Ereignis -IDs, die ich verwenden sollte. Werde ich in Ordnung sein, oder sollte ich hier eine völlig andere Option betrachten?

War es hilfreich?

Lösung

Nicht wirklich. Auf der obersten Ebene haben Sie eine Ereignisquelle. Jede Ereignisquelle hat ihre eigenen Ereigniskategorien. Jede Ereignismeldung ist "im Besitz" einer Ereignisquelle und fällt in eine seiner Ereigniskategorien. Wenn Sie Ihre Veranstaltungen unter der Ereignisquelle eines anderen protokollieren möchten, brechen Sie gegen diese Konvention und könnten möglicherweise Event -ID -Kollisionen haben.

Auf der anderen Seite, Ereignis -IDs sind strukturell ähnlich wie bei HRESULTS und es gibt ein Kundenbit, das Sie festlegen können. Es gibt auch ein Fazilitätscodefeld, aber Microsoft bietet nur eine Einrichtung für Drittanbieter (der Rest ist reserviert). Selbst wenn Sie sich mit diesen Teilen anlegen, sind Sie dem Besitzer der Veranstaltungsquelle immer noch ausgeliefert. Wenn Microsoft jemals etwas an die Ereignisquelle schreiben würde, die Sie verwenden, und den Kundenbit- oder Facility-Code festlegen (z. B. möglicherweise Nicht-Windows-Komponenten wie Büro oder etwas), würden Sie gleich in der gleichen Gefahr von Kollisionen zurückkehren. Oder wenn ein anderer Entwickler beschließt, das Gleiche zu tun, was Sie tun. Der sicherste Weg ist wirklich, Ihre eigene Ereignisquelle zu definieren.

Andere Tipps

Es scheint, dass dies der Kern des Problems ist

Ich mache mir Sorgen, dass ich mit internen Windows -Ereignissen widersprüchlich bin, insbesondere angesichts meiner Zielgruppe.

Ich glaube nicht, dass Sie sich Sorgen machen müssen, da die Ereignis -ID einer bestimmten Ereignisquelle entsprechen. Wenn Sie also genau die gleiche Quelle verwenden, werden Sie nicht dazu führen, dass sich der Administrator verärgert. Zum Beispiel macht MS manchmal manchmal Verwendet die gleiche ID mit verschiedenen Quellen.

Wenn Sie Informationen zu den registrierten Verlegern und Event -IDs erhalten möchten, die Sie verwenden können Wevtutil Dies wird beispielsweise die Verlage auflisten.

wevtutil ep

Aus diesem Grund können Sie die spezifischen Ereignis -IDs für einen Verlag verwenden, den Sie Folgendes verwenden können (Ereignisprotokoll wurde in diesem Beispiel verwendet).

wevtutil gp Microsoft-Windows-EventLog /ge /gm:true

Wenn Sie gut in PowerShell sind, können Sie sich sicher ein Skript einfallen lassen, um alle Ereignis -IDs zu erhalten, die registriert sind

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top