有誰知道是否可以將Windows事件日誌從給定的時間間隔保存爲使用C#的文本文件?例如,假設我想將系統事件日誌從10點到11點保存在文本文件中。如果有可能任何人有一個好的教程的鏈接,或者可能讓我去的代碼片段?我在網上搜索,但不能得到我在找什麼。使用C#從指定時間段收集事件日誌
1
A
回答
4
1
只是增加信息的其他人如何按時間範圍爲WMI查詢的一部分篩選事件日誌。
注意「TimeGenerated」是當事件發生,「TimeWritten」當他們登錄。 在「RecordNumber」是唯一的索引,用於防止碰撞的或重複的記錄是有用的。
有System.Management.ManagementDateTimeConverter該C#日期時間和WMI CIM_DATETIME格式之間進行轉換。 但要知道它使UTC CIM到本地的DateTime而留下無具體規定,所以設置後一種避免頭痛!
這是抓安全故障(跟蹤停工)在最後30分鐘的例子:
private void SearchEventViewer(string computerName, string userName, string userPass)
{
var scope = CreateManagementScope(computerName, userName, userPass);
var startTime = ManagementDateTimeConverter.ToDmtfDateTime(DateTime.UtcNow.AddMinutes(-30));
var query = new SelectQuery("SELECT * FROM Win32_NTLogEvent WHERE Logfile = 'Security' AND EventType = '5' AND TimeGenerated > '" + startTime + "'");
using (var searcher = new ManagementObjectSearcher(scope, query))
{
var result = searcher.Get();
foreach (var item in result)
{
var eventTimeLocal = DateTime.SpecifyKind(ManagementDateTimeConverter.ToDateTime(item["TimeGenerated"].ToString()), DateTimeKind.Local);
var eventTimeUtc = eventTimeLocal.ToUniversalTime();
var eventDetails = item["Message"].ToString().Replace("\r\n\r\n", "\r\n");
eventDetails += "\r\nEventCode: " + item["EventCode"];
eventDetails += "\r\nCatogory: " + item["Category"];
eventDetails += "\r\nRecord Number: " + item["RecordNumber"];
eventDetails += "\r\nLocal Time: " + eventTimeLocal.ToString("yyyy-MM-dd HH:mm:ss");
// Do something...
}
}
}
private ManagementScope CreateManagementScope(string computerName, string username = "", string password = "")
{
var managementPath = @"\\" + computerName + @"\root\cimv2";
var scope = new ManagementScope(managementPath);
if (username != "" && password != "")
{
scope.Options = new ConnectionOptions
{
Username = username,
Password = password,
Impersonation = ImpersonationLevel.Impersonate,
Authentication = AuthenticationLevel.PacketPrivacy
};
}
return scope;
}
相關問題
- 1. 從垃圾收集日誌
- 2. 使用Apache Flume收集CPU時間日誌
- 3. 從遠程XP機器收集事件日誌
- 4. 從Mesos羣集收集日誌
- 5. Azure Event Hub從指定時間開始接收事件
- 6. Kubernetes日誌收集
- 7. 使用C#修改事件日誌
- 8. 從事件日誌
- 9. 無法事件日誌寫入指定的日誌
- 10. 在特定時間段內查詢應用程序事件日誌
- 11. 事件日誌自當前時間
- 12. 如何從WEBSITE收集彈性和kibana日誌並收集日誌
- 13. 基於時間的收集和事件
- 14. 使用事件日誌作爲臨時日誌存儲
- 15. 使用AMQP收集事件
- 16. Highstock:指定X軸日期時間段
- 17. 使用Bash從日誌文件中選擇時間間隔
- 18. 如何使用C#創建自定義事件日誌
- 19. Android的日誌收集
- 20. 使用沒有管理員權限的Windows API收集事件日誌
- 21. 花點時間從日誌文件
- 22. 從日誌文件中提取日誌時間
- 23. 空指針異常日誌和事件日誌類碼
- 24. Log4j和集中日誌收集
- 25. 事件日誌(事件日誌創建事件)
- 26. 使用.Net Core Console日誌記錄器記錄事件日期時間
- 27. 使用tee命令創建時間特定的日誌文件
- 28. 使用Javascript - 從日誌文件中刪除/斷開時間戳
- 29. 事件收集
- 30. Windows事件日誌和日誌文件
輝煌,正是我一直在尋找。 – DukeOfMarmalade 2012-03-26 13:20:13