簡體   English   中英

在C#中使用WMI讀取事件查看器內容時,如何獲取與文化無關的類型信息

[英]How do I get culture-neutral type information when reading event viewer content with WMI in C#

我正在使用下面的代碼行從EventViewer中讀取日志。

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

上面的代碼在en-US文化中運作良好,但在其他文化中會失敗,因為其他文化將代表Error作為其他一些詞。

例如: de-DE文化中的錯誤詞(德語)表示為Fehler 我將在不同的環境中使用相同的代碼。 我不想維護資源文件,因為問題只有一個字或者不需要翻譯API,因為安全措施可以解決這個問題。 有誰能請我提供解決方案。

不要按事件類型的名稱查詢過濾,而是按內部類型id過濾:

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

您可以在WMI Win32_NTLogEvent類文檔中看到EventType的可能值列表。

請注意,屬性Type是一個字符串,包含本地語言的類型,而EventType是一個具有固定含義的整數

  • 1 =錯誤
  • 2 =警告
  • 3 =信息
  • 4 =安全審計成功
  • 5 =安全審核失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM