Как программно или регулярно очищать журнал событий Operational PrintService?

Мы пытаемся провести внутренний аудит печати для принтеров, которые работают на Windows Server 2008 R2. После включения журнала через Event Viewer в:

Журналы приложений и служб -> Microsoft -> Windows -> PrintService -> Операционная

Я успешно собираю события с идентификатором 307, адаптируя ответ кэтот вопрос для моих нужд, а затем хранить эти события в базе данных для использования в других приложениях.

        // Build formatted query string
        string eventID = "307";
        string logSource = "Microsoft-Windows-PrintService/Operational";
        string sQuery = String.Format("*[System/EventID={0}]", eventID);

        // Define query and reader
        var elQuery = new EventLogQuery(logSource, PathType.LogName, sQuery);
        var elReader = new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);

        // List for holding events
        List<EventRecord> eventList = new List<EventRecord>();
        for (EventRecord eventInstance = elReader.ReadEvent();
            null != eventInstance; eventInstance = elReader.ReadEvent())
        {
            eventList.Add(eventInstance);
        }

То, что я не могу сделать сейчас, это ясно, что журнал после сохранения этих событий.

Это позволяет мне вручную очистить этот журнал от просмотра событий, но работает:

public static void PrintLogs()
    {
        foreach (var eventLog in EventLog.GetEventLogs())
        {
            Console.WriteLine(eventLog.Log.ToString());
        }
    }

выводит только журналы более высокого уровня, перечисленные в разделе «Журналы приложений и служб»:

Application
HardwareEvents
Internet Explorer
Key Management Service   
OAlerts                     // Not sure where OAlerts and
PreEmptive                  // PreEmptive are in the Event Viewer
Security
System
Windows PowerShell

Ответ наэтот вопрос намекает на то, что вы не можете использовать класс EventLog для доступа к журналам событий Microsoft-Windows- *.

Могу ли я что-нибудь сделать, чтобы программно очистить этот конкретный журнал событий (не только 307 событий, но и другие в журнале операций)?

Я бы хотел настроить эту маленькую программу так, чтобы она запускалась каждые несколько минут, часов или дней автоматически, но сейчас было бы очень сложно проверить базу данных на наличие существующих событий и просто добавить несколько новых, появившихся с момента последнего запуска. побежал.

Ответы на вопрос(1)

Ваш ответ на вопрос