Eventlog - bestimmte Events exportieren und Eventlog leeren
Moin Zusammen,
aufgrund eines ziemlichen GAUs (Ein unbekannter Nutzer hat die Daten aus einem Verzeichnis gelöscht) bin ich gezwungen die Überwachung einzustellen.
Da dieser Ordner einem ziemlichen Zugriff unterliegt hab ich es zunächst auch nur auf Löschvorgänge und Änderungen der Berechtigungen (da spielt auch immer jemand rum) beschränkt - dennoch viel.
Da ich sonst eigentlich nichts aus dem Security Eventlog benötige will ich ein mal am Tag das Eventlog löschen, aber zunächst sollen die relevanten Events extrahiert werden.
Die IDs sind:
4656
4658
4664
4660
4670
Die Events will ich in eine txt exportieren mit dem Datum versehen.
Anschließend soll das Security Log geleert werden.
Batch oder vbs wäre wünschenswert.
Hat da zufällig jemand was parat? Finde leider nur was zu kompletten Exports.
Gruß
aufgrund eines ziemlichen GAUs (Ein unbekannter Nutzer hat die Daten aus einem Verzeichnis gelöscht) bin ich gezwungen die Überwachung einzustellen.
Da dieser Ordner einem ziemlichen Zugriff unterliegt hab ich es zunächst auch nur auf Löschvorgänge und Änderungen der Berechtigungen (da spielt auch immer jemand rum) beschränkt - dennoch viel.
Da ich sonst eigentlich nichts aus dem Security Eventlog benötige will ich ein mal am Tag das Eventlog löschen, aber zunächst sollen die relevanten Events extrahiert werden.
Die IDs sind:
4656
4658
4664
4660
4670
Die Events will ich in eine txt exportieren mit dem Datum versehen.
Anschließend soll das Security Log geleert werden.
Batch oder vbs wäre wünschenswert.
Hat da zufällig jemand was parat? Finde leider nur was zu kompletten Exports.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 240692
Url: https://administrator.de/forum/eventlog-bestimmte-events-exportieren-und-eventlog-leeren-240692.html
Ausgedruckt am: 07.04.2025 um 21:04 Uhr
8 Kommentare
Neuester Kommentar
Moin Xaero,
also mit Powershell z.B. kein Hexenwerk:
Mehr zur exakteren Event-Filterung kannst du hier nachlesen:
Grüße Uwe
also mit Powershell z.B. kein Hexenwerk:
# Events in CSV-Datei exportieren
Get-WinEvent -LogName Security | ?{$_.ID -eq 4656 -or $_.ID -eq 4658 -or $_.ID -eq 4664 -or $_.ID -eq 4660 -or $_.ID -eq 4670} | export-csv "C:\events.csv" -NoTypeInformation -Delimiter ";"
# Eventlog löschen
Clear-EventLog -LogName Security -Confirm:$false
Mehr zur exakteren Event-Filterung kannst du hier nachlesen:
- Automatische Eventlogauswertung mit Filterung
- http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filter ...
Grüße Uwe
Zitat von @Xaero1982:
Kann ich das auch einfach in den Taskplaner einfügen und er ruft die PS-Datei entsprechend auf?
Sicher kein Problem aber vorher solltest du zuerst die Execution-Policy prüfen.Kann ich das auch einfach in den Taskplaner einfügen und er ruft die PS-Datei entsprechend auf?
Hier mal alles für den Anfang mit Powershell:
Anleitung: Wie starte ich Powershell-Scripte
- Zuerst speicherst man den Code in einer Textdatei mit der Endung .ps1.
- Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine Powershell-Konsole und gibt dort den Befehl
Set-ExecutionPolicy RemoteSigned -Force
ein. Um diese Policy für alle User auf dem Rechner zu setzen muss man diesen Befehl in einer Powershell-Konsole mit Admin-Rechten starten. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden:Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
- Jetzt kann das Powershell-Script in der Konsole mit Eingabe des Pfades der Scriptdatei, oder mit einem Rechtsklick auf die Script-Datei :Mit Powershell ausführen gestartet werden.
Im Taskplaner setzt du dann unter Auszuführendes Programm den Pfad zur Powershell-EXE (
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
) und unter Argumente dann den Pfad zum Script.
dir fehlt hier noch die Funktion zur Umwandlung des WMI-Datums(UTC) WMIDateStringToDate():
http://gallery.technet.microsoft.com/scriptcenter/03a18f58-0e13-47d1-88 ...
Und zum testen mal das On Error Resume Next rausnehmen, dann meldet sich das Script wenn Fehler auftauchen, fürs Debugging von Vorteil 
Zum Löschen des Eventlogs kannst du mit VBS dann noch das hier hernehmen:
Grüße Uwe
http://gallery.technet.microsoft.com/scriptcenter/03a18f58-0e13-47d1-88 ...
Function WMIDateStringToDate(wmiDate)
WMIDateStringToDate = CDate(Mid(wmiDate, 5, 2) & "/" & _
Mid(wmiDate, 7, 2) & "/" & Left(wmiDate, 4) _
& " " & Mid (wmiDate, 9, 2) & ":" & _
Mid(wmiDate, 11, 2) & ":" & Mid(wmiDate, _
13, 2))
End Function
Zum Löschen des Eventlogs kannst du mit VBS dann noch das hier hernehmen:
'Clear Security Eventlog
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Backup)}!\\.\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='Security'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
Zitat von @Xaero1982:
Also das mit dem Powershellscript haut irgendwie nicht so hin. Die Daten die im Eventlog stehen sind andere als die Log
hergibt...
Kann ich nicht feststellen!Also das mit dem Powershellscript haut irgendwie nicht so hin. Die Daten die im Eventlog stehen sind andere als die Log
hergibt...
Ich bekomme leider keinen Usernamen raus der im Eventlog vorhanden ist... sondern offenbar nur die ID. Auch nicht auf welche Datei
zugegriffen wurde...
Dazu musst du wie oben verlinkt mit XPath Filtern und dann den Namen und Datei aus dem Message-Body extrahieren. Melde mich morgen nochmal...zugegriffen wurde...
Heut is Ende Gelände
Schönen Abend
Uwe