¿Cómo borro programática o regularmente el registro de eventos de Operational PrintService?
Estamos tratando de hacer una auditoría interna de impresión para las impresoras que tenemos en un Windows Server 2008 R2. Después de habilitar el registro a través del Visor de eventos en:
Registros de aplicaciones y servicios -> Microsoft -> Windows -> PrintService -> Operational
Estoy obteniendo eventos con éxito con el ID 307 al adaptar la respuesta aesta pregunta a mis necesidades y luego almacenar esos eventos en una base de datos para usar en otras aplicaciones.
// 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);
}
Lo que no puedo hacer ahora es borrar ese registro después de guardar esos eventos.
Me permite borrar manualmente este registro del Visor de eventos, pero ejecuto:
public static void PrintLogs()
{
foreach (var eventLog in EventLog.GetEventLogs())
{
Console.WriteLine(eventLog.Log.ToString());
}
}
solo genera los registros de nivel superior enumerados en "Registros de aplicaciones y servicios":
Application
HardwareEvents
Internet Explorer
Key Management Service
OAlerts // Not sure where OAlerts and
PreEmptive // PreEmptive are in the Event Viewer
Security
System
Windows PowerShell
La respuesta aesta pregunta sugiere que no puede usar la clase EventLog para acceder a los registros de eventos de Microsoft-Windows- *.
¿Hay algo que pueda hacer para borrar programáticamente este registro de eventos específico (no solo 307 eventos, sino también los otros en el registro operativo)?
Me gustaría configurar este pequeño programa para que se ejecute cada pocos minutos, horas o días automáticamente, pero en este momento sería mucho verificar la base de datos de eventos existentes y solo agregar los pocos que son nuevos desde la última vez que corrió.