2017-03-29 1 views
3

Je lis les journaux d'EventViewer en utilisant les lignes de code ci-dessous.Comment obtenir des informations de type culture neutre lors de la lecture du contenu du visualiseur d'événements avec WMI en C#

var searcher = new ManagementObjectSearcher(@"\\WS2012-DE01\root\cimv2", 
       "SELECT * FROM Win32_NTLogEvent WHERE Type ='Error'"); 

code ci-dessus fonctionne très bien dans en-US la culture, mais échouera dans d'autres culture, car autre culture représentera Error comme un autre mot.

par exemple: erreur mot dans de-DE culture (en allemand) représente comme Fehler. Je vais utiliser le même code dans un environnement différent. Je ne veux pas conserver un fichier de ressources car le problème concerne un seul mot ou ne nécessite pas d'API Translator en raison des mesures de sécurité pour résoudre ce problème. Quelqu'un pourrait-il me fournir une solution?

Répondre

2

Ne pas interroger le filtrage par le nom du type d'événement, mais le filtrage par l'identifiant de type interne:

var searcher = new ManagementObjectSearcher(@"\\WS2012-DE01\root\cimv2", 
       "SELECT * FROM Win32_NTLogEvent WHERE EventType=1"); 

Vous pouvez voir la liste des valeurs possibles pour EventType dans le documentation of the WMI Win32_NTLogEvent class.

Notez que la propriété Type est une chaîne et contient le type dans la langue locale, alors que EventType est un entier avec un sens fixe comme

  • 1 = Erreur
  • 2 = Avertissement
  • 3 = Informations
  • 4 = sécurité audit des succès
  • 5 = audit de sécurité non