Prueba WEvtUtil.exe
No hay forma a través de la GUI para borrar todos los registros a la vez. Al menos no es lo que he encontrado. :)
Bucle y eliminar con archivo intermedio
Aquí hay un archivo por lotes que usa WEVTUTIL.exe para enumerar los registros en un archivo de texto, y luego usa ese archivo de texto para eliminar cada uno de los registros.
WEVTUTIL EL > .\LOGLIST.TXT
for /f %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"
del .\LOGLIST.TXT
timeout 30
Si se siente inseguro al tener todo esto en un archivo por lotes, puede guardarlo en dos archivos separados y luego ejecutar uno después del otro:
(El lote "Nuke" simplemente generará un error si no encuentra un "loglist.txt "en su directorio actual.)
Populate-LogList.cmd
@ECHO OFF
REM Source: /superuser//a/655185/389368
WEvtUtil.exe enum-logs > .\LOGLIST.TXT
Nuke-LogList.cmd
@ECHO OFF
REM Source: /superuser//a/655185/389368
for /f %%a in ( .\LOGLIST.TXT ) do WEvtUtil.exe clear-log "%%a"
del .\LOGLIST.TXT
timeout 30
Bucle y eliminar directamente
Como Logman señaló en su respuesta , esto se puede acortar aún más (y eliminar la necesidad del archivo de texto intermedio) mediante el uso de algo como (el doble de% para el archivo por lotes):
for /f %%a in ('WEVTUTIL EL') do WEVTUTIL CL "%%a"
timeout 30
Ejecutar como administrador!
De cualquier forma que elija, asegúrese de "Ejecutar como administrador".
La solución más fácil que he encontrado. Lo he estado usando desde Vista. :)
wevtutil
en el sistema.Abra el indicador de cmd o cree un script por lotes y "ejecute como administrador":
Código de Powershell para borrar todos los registros de eventos:
o escoger y elegir en un script:
etc ...
Puede obtener una lista completa de todos los nombres de categorías de eventos escribiendo lo siguiente en un indicador de cmd o powershell:
Se puede encontrar más información en MS TechNet . Ejemplos:
Exporte eventos desde el registro del sistema a C: \ backup \ system0506.evtx:
Borre todos los eventos del registro de la aplicación después de guardarlos en C: \ admin \ backups \ a10306.evtx:
fuente
wevtutil es bastante lento, especialmente cuando borra todos los registros (incluidos los vacíos)
La solución más rápida que se me ocurrió:
ForEach ( $l in ( Get-WinEvent * ).LogName | sort | get-unique ) {[System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog("$l")}
Resultado: "Se borraron 16 eventos en 4 registros: 0.3684785 segundos"
Cada parte:
solo obtiene registros que contienen eventos (habrá LogNames duplicados)
ForEach ($ l en (Get-WinEvent *) .LogName | sort | get-unique)
limpiar cada uno
System.Diagnostics.Eventing.Reader.EventLogSession] :: GlobalSession.ClearLog ("$ l")
Función completa:
Si ve "Get-WinEvent: los datos no son válidos", ha alcanzado el límite rígido indocumentado de 256 registros. Puede ser necesario filtrar los registros primero. Lo siguiente seleccionará solo los registros que tienen eventos (crédito a http://www.powershellish.com/blog/2015/01/19/get-winevent-max-logs/ para el diagnóstico):
fuente
Es importante usar la opción delim si tiene espacios en los nombres:
También puede deshabilitar fácilmente todo el registro de eventos sin detener el servicio de registro de eventos:
Por supuesto, esto solo deshabilitará los eventos de software realmente instalados, si instala un nuevo software, tendrá el registro habilitado de forma predeterminada. Pero es bueno que pueda dejar el Programador de tareas en ejecución, así que hágalo todos los meses ;-)
fuente
WEVTUTIL sl /?
en una línea de comando.Por cierto, esto borra todos los archivos de registro, que pueden (según la configuración anterior) liberar bastante espacio
fuente
He usado archivos .bat para que sea un poco más fácil borrar los archivos de registro. Acabo de elegir el guión simple aquí
http://winaero.com/blog/how-to-clear-the-windows-event-log-from-the-command-line/
Copiado de ese enlace.
Abra el Bloc de notas y copie y pegue el texto en él.
Guárdelo como un archivo por lotes y asígnele el nombre que desee, por ejemplo: ClEvtLog.bat o ClEvtLog.cmd.
Ejecútelo con derechos de administrador.
fuente