La lecture du Journal des Événements de Windows avec C# (Source != ProviderName != SourceName)
Je suis à l'aide de C# pour lire le Journal des Événements Windows et je veux choisir/filtre les entrées. Le problème est que les informations affichées dans l'Observateur d'Événements n'est pas toujours mise en correspondance des données que je reçois de c#.
par exemple:
EventViewer "Source": "Le Service De Profil Utilisateur"
À l'aide de la la classe EventLogEntry: la Propriété "Source": "Microsoft-Windows-Service de Profils Utilisateur"
À l'aide de la EventLogReader classe: Propriété "ProviderName": "Microsoft-Windows-Service de Profils Utilisateur"
À l'aide de WMI: "Source": "Microsoft-Windows-Service de Profils Utilisateur"
J'ai besoin d'être en mesure de lire les informations affichées dans l'EventViewer, où puis-je trouver cette information?
La lecture du Journal des événements de message...
Lors de la lecture du Journal des événements de message à l'aide de la la classe EventLogEntry je reçois parfois la chaîne suivante:
La description pour l'ID d'Événement "xxx" à la Source "xxx" ne peut pas être trouvé
Encore une fois, cela ne correspond pas au message affiché dans la EventViewer... j'ai essayé d'utiliser le EventLogReader.FormatDescription() la méthode et ça me donne le droit (le même que l'EventViewer) message, MAIS pour certaines entrées, il retourne simplement la valeur null, alors que le EventLogEntry.Message contient le texte correct.
Quelle est la bonne façon de récupérer le message de l'événement pour obtenir le même message que celui affiché dans l'EventViewer?
OriginalL'auteur flayn | 2012-01-11
Vous devez vous connecter pour publier un commentaire.
Qui est assez de base swag à l'interaction avec le journal. Si vous avez besoin plus profond de filtrage à la source, vous pouvez écrire une requête LINQ sur les Entrées. Comme le montre ici.
Comme pour l'erreur, une raison commune est de ne pas avoir les droits d'accès appropriés pour les événements et/ou du registre sur la zone en question. Puisque vous pouvez voir les données en question dans EventViewer, je suis soupçonner une erreur d'autorisations est une bonne possibilité.
OriginalL'auteur Gregory A Beamer
Il semble que la "Source" chaîne affichée dans la "Source" de la colonne dans l'Observateur d'Événements est abrégée. Aussi, il semble que lorsque vous essayez de créer un Journal en C# uniquement le logtype questions par exemple "Application", "Système", etc. Une fois que vous créez un Journal d'il contiendra toutes les entrées pour ce logtype indépendamment de ce que vous avez indiqué une source.
Afin d'obtenir un événement sur "Source" vous voulez effectuer une itération sur les entrées et filtrer uniquement les entrées pour "la Source". Il suffit de garder à l'esprit que le nom de la source n'est pas la même chose que ce que vous voyez dans l'Observateur d'Événements. Par exemple pour la Source "Winlogon" le nom de la source serait: "Microsoft-Windows-Winlogon" et ainsi de suite.
OriginalL'auteur wildriver