2013-10-08 3 views
1

Windows 이벤트 로그는 보통 %SystemRoot%\System32\winevt\Logs에 저장됩니다. 모든 파일은 일종의 데이터베이스로, *.evt*.evtx 개의 파일을 별도의 레코드로 열거하고이 레코드를 시스템에서 어떻게 제거 할 수 있는지 프로그래밍 방식으로 데이터를 열거 할 수 있는지 묻고 싶습니다.Windows 이벤트를 열거하고 삭제하는 방법은 무엇입니까?

나는 Windows Event Log Functions을 찾았지만 XP에서 작동하는 솔루션을 찾고 있습니다. 후일에 시도한 Event Logging Functions. 이 API를 사용하여 데이터를 단일 레코드로 읽었지만 삭제 기능은 하나 뿐이므로 ClearEventLog입니다. 그러나 이렇게하면 모든 이벤트가 로그에서 삭제됩니다. 나는 하나의 레코드를 삭제할 수있는 솔루션을 찾고 있습니다.

중요 사항 : C# 및 .net 솔루션이 도움이되지 않으므로 C++로 프로그래밍 중이며 Windows XP와의 호환성도 필요합니다.

답변

2

이벤트 로그에서 읽는 API가 있습니다.

  • OpenEventLog function - 지정된 이벤트에 대한 핸들이
  • ReadEventLog 기능을 로그인 엽니 다 - 지정된 이벤트 로그에서 지정된 수의 엔트리를 읽습니다. 이 함수는 시간순 또는 역순으로 로그 항목을 읽는 데 사용할 수 있습니다.
  • Querying for Event Information은 이벤트 로그를 열고, 로그에서 이벤트를 읽고, 이벤트에 대한 정보를 출력 한 다음 이벤트 로그를 닫는 방법을 보여줍니다.
  • Event Logging Functions - API를 자체도 [여기]
+0

감사합니다, (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363654%28v=vs.85%29. aspx) 전체 API 프로 시저 목록을 찾을 수 있습니다. – ST3

+0

또한 재미있는 일은 외부 파일에 이벤트 로그를 백업하는 것입니다. 이러한 '.EVT'파일은 오프 사이트/오프라인 검토를 위해 전송 될 수 있습니다. –

+0

이 질문에 대해 더 궁금한 점이 있으면 API에 대한 링크를 제공했습니다. 이제 완전히 스캔 메커니즘을 사용하고 있지만이 API에는 'ClearEventLog' 기능이 있습니다.이 기능은 일부 이벤트 로그의 모든 데이터를 삭제하며 단일 레코드를 삭제할 수 있는지 알고 있습니까? – ST3

관련 문제