Versuchen Sie es mit WEvtUtil.exe
Über die GUI besteht keine Möglichkeit, alle Protokolle auf einmal zu löschen. Zumindest nicht, dass ich jemals gefunden habe. :)
Schleife und löschen mit Zwischendatei
In der folgenden Batchdatei werden die Protokolle mithilfe von WEVTUTIL.exe in einer Textdatei aufgelistet und anschließend mithilfe dieser Textdatei alle Protokolle gelöscht.
WEVTUTIL EL > .\LOGLIST.TXT
for /f %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"
del .\LOGLIST.TXT
timeout 30
Wenn Sie sich nicht sicher fühlen, ob dies alles in einer Batch-Datei enthalten ist, können Sie dies in zwei separaten Dateien speichern und dann nacheinander ausführen:
(Der "Nuke" -Batch wird nur fehlerhaft ausgeführt, wenn keine "loglist.txt" gefunden wird "im aktuellen Verzeichnis.)
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
Schleife und lösche direkt
Wie Logman in seiner Antwort betonte , kann dies weiter verkürzt werden (und die Notwendigkeit für die Zwischentextdatei entfällt), indem so etwas wie (% s double für Batch-Datei) verwendet wird:
for /f %%a in ('WEVTUTIL EL') do WEVTUTIL CL "%%a"
timeout 30
Als Admin ausführen!
Stellen Sie sicher, dass Sie "Als Administrator ausführen".
Einfachste Lösung, die ich gefunden habe. Benutze es seit Vista. :)
wevtutil
im System.Öffne die cmd Eingabeaufforderung oder erstelle ein Batch-Skript und "starte als Admin":
PowerShell-Code zum Löschen aller Ereignisprotokolle:
oder in einem Skript auswählen:
etc...
Sie können eine vollständige Liste aller Ereigniskategorienamen abrufen, indem Sie Folgendes in eine Cmd-Eingabeaufforderung oder in eine PowerShell eingeben:
Weitere Informationen finden Sie unter MS TechNet . Beispiele:
Exportieren Sie Ereignisse aus dem Systemprotokoll nach C: \ backup \ system0506.evtx:
Löschen Sie alle Ereignisse aus dem Anwendungsprotokoll, nachdem Sie sie in C: \ admin \ backups \ a10306.evtx gespeichert haben:
quelle
wevtutil ist ziemlich langsam, besonders wenn Sie alle Protokolle löschen (auch leere)
schnellste Lösung, die ich mir ausgedacht habe:
ForEach ( $l in ( Get-WinEvent * ).LogName | sort | get-unique ) {[System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog("$l")}
Ergebnis: "16 Ereignisse in 4 Protokollen gelöscht: 0,3684785 Sekunden"
Jeder Teil:
Ruft nur Protokolle mit Ereignissen ab (es gibt doppelte Protokollnamen)
ForEach ($ l in (Get-WinEvent *) .LogName | sort | get-unique)
lösche jeden
System.Diagnostics.Eventing.Reader.EventLogSession] :: GlobalSession.ClearLog ("$ l")
Volle Funktion:
Wenn Sie "Get-WinEvent: Die Daten sind ungültig" sehen, haben Sie das undokumentierte Hard-Limit von 256 Protokollen erreicht. Möglicherweise müssen die Protokolle zuerst gefiltert werden. Im Folgenden werden nur die Protokolle mit Ereignissen ausgewählt (Gutschrift auf http://www.powershellish.com/blog/2015/01/19/get-winevent-max-logs/ für die Diagnose):
quelle
Es ist wichtig, die Option delim zu verwenden, wenn die Namen Leerzeichen enthalten:
Sie können die gesamte Ereignisprotokollierung auch ganz einfach deaktivieren, ohne den Ereignisprotokolldienst zu beenden:
Dies deaktiviert natürlich nur tatsächlich installierte Software-Ereignisse. Wenn Sie eine neue Software installieren, ist die Protokollierung standardmäßig aktiviert. Aber gut, dass Sie den Taskplaner laufen lassen können, tun Sie es einfach jeden Monat ;-)
quelle
WEVTUTIL sl /?
eine Befehlszeile einzugeben .Übrigens werden dadurch alle Protokolldateien gelöscht, wodurch (abhängig von den vorherigen Einstellungen) ziemlich viel Speicherplatz frei wird
quelle
Ich habe .bat-Dateien verwendet, um das Löschen von Protokolldateien zu vereinfachen. Ich habe hier nur das einfache Drehbuch ausgewählt
http://winaero.com/blog/how-to-clear-the-windows-event-log-from-the-command-line/
Von diesem Link kopiert.
Öffnen Sie den Editor und kopieren Sie den Text.
Speichern Sie es als Batch-Datei und geben Sie ihm einen beliebigen Namen, zum Beispiel: ClEvtLog.bat oder ClEvtLog.cmd.
Führen Sie es mit Administratorrechten aus.
quelle