Wie lösche ich das Operational PrintService-Ereignisprotokoll programmgesteuert oder regelmäßig?

Wir versuchen, einige interne Druckprüfungen für Drucker durchzuführen, die auf einem Windows Server 2008 R2 ausgeführt werden. Nach dem Aktivieren des Protokolls über die Ereignisanzeige in:

Anwendungen und Dienstprotokolle -> Microsoft -> Windows -> PrintService -> Operational

Ich greife erfolgreich nach Ereignissen mit der ID 307, indem ich die Antwort auf @ anpassdiese Frag nach meinen Wünschen und Speichern dieser Ereignisse in einer Datenbank zur Verwendung in anderen Anwendungen.

        // 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);
        }

Was ich jetzt nicht tun kann, ist das Protokoll nach dem Speichern dieser Ereignisse zu löschen.

Es ermöglicht mir, dieses Protokoll manuell aus der Ereignisanzeige zu löschen, aber es wird ausgeführt:

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

gibt nur die übergeordneten Protokolle aus, die unter "Anwendungs- und Dienstprotokolle" aufgeführt sind:

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

Die Antwort aufdiese Frag weist darauf hin, dass Sie die EventLog-Klasse nicht für den Zugriff auf Microsoft-Windows- * -Ereignisprotokolle verwenden können.

Kann ich irgendetwas tun, um dieses spezielle Ereignisprotokoll programmgesteuert zu löschen (nicht nur 307 Ereignisse, sondern auch die anderen im Betriebsprotokoll)?

Ich würde dieses kleine Programm gerne so einstellen, dass es alle paar Minuten, Stunden oder Tage automatisch ausgeführt wird, aber im Moment müsste die Datenbank auf vorhandene Ereignisse überprüft und nur die wenigen hinzugefügt werden, die seit dem letzten Mal neu sind es lief

Antworten auf die Frage(2)

Ihre Antwort auf die Frage