2015-04-19 14 views
5

Tôi đang sử dụng sysmon để nắm bắt một loạt thông tin sự kiện (kết nối mạng, tải DLL, v.v.). Tôi muốn lấy thông tin đó và sử dụng nó cho các mục đích khác nhau, nhưng dường như không có cách nào để lấy các bản ghi lồng nhau. Họ cư trú tạiC# - Đọc nhật ký sự kiện được tổ chức từ ứng dụng tùy chỉnh

Event Viewer/Applications and Services/Microsoft/Windows/Sysmon/Operational 

Tất cả mã tôi đã cố gắng chỉ lấy Nhật ký sự kiện "chuẩn". Ví dụ:

EventLog[] eventLogs = EventLog.GetEventLogs(); 

có "ứng dụng", "Phần cứng Sự kiện", "Internet Explorer", vv

tôi biết làm thế nào để tạo ra và lấy các bản ghi sự kiện tùy chỉnh, nhưng điều đó dường như không áp dụng ở đây, vì các nhật ký này không ở các vị trí tiêu chuẩn. Bất kỳ trợ giúp nào bạn có thể cung cấp sẽ được đánh giá rất nhiều!

+1

Tôi sẽ thử xem xét không gian tên 'System.Diagnostics.Eventing.Reader'. Nó có API phong phú hơn nhiều để nhận nhật ký sự kiện. 'EventLogSession.GetLogNames' trả về danh sách lớn hơn nhiều so với' EventLog.GetEventLogs'. –

+0

^^ Đây chính xác là những gì tôi đang tìm kiếm. Cảm ơn bạn rất nhiều :) Nếu bạn trả lời tôi sẽ đánh dấu nó. – adamdabbracci

Trả lời

3

Hãy xem không gian tên System.Diagnostics.Eventing.Reader. Cụ thể, bạn có thể nhận danh sách đầy đủ tên nhật ký từ:

EventLogSession.GlobalSession.GetLogNames() 

Danh sách này hoàn chỉnh hơn EventLog.GetEventLogs(). Các lớp hữu ích khác trong không gian tên này là EventLogReaderEventLogWatcher.

Các vấn đề liên quan