37958
22.02.2017
3733
15
0
Powershell - suche nach gelöschter Datei aus LOG
Hi,
da bin ich wieder.
Ich suchte nach einer Möglichkeit, aus LOG-Dateien zu extrahieren, wo man das Löschen von Dateien nachvollziehen kann.
Das funktioniert soweit ganz gut ...
Ist aber etwas unübersichtlich, wenn man z. B. nach einer bestimmten Datei sucht.
In der Powershell gibt es da: Get-EventLog security | where{$_.eventID -eq 4663}
Hier wäre es cool, wenn man da noch den Dateinamen mitgeben könnte.
Ein Highlight wäre dann noch die Ausgabe von EventData/SubjectUserName und Protokolierzeit.
Hat da mal jemand eine Idee?
Grüße
Heinz
da bin ich wieder.
Ich suchte nach einer Möglichkeit, aus LOG-Dateien zu extrahieren, wo man das Löschen von Dateien nachvollziehen kann.
Das funktioniert soweit ganz gut ...
Ist aber etwas unübersichtlich, wenn man z. B. nach einer bestimmten Datei sucht.
In der Powershell gibt es da: Get-EventLog security | where{$_.eventID -eq 4663}
Hier wäre es cool, wenn man da noch den Dateinamen mitgeben könnte.
Ein Highlight wäre dann noch die Ausgabe von EventData/SubjectUserName und Protokolierzeit.
Hat da mal jemand eine Idee?
Grüße
Heinz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 330194
Url: https://administrator.de/contentid/330194
Ausgedruckt am: 28.03.2024 um 18:03 Uhr
15 Kommentare
Neuester Kommentar
Öhm Heinz,
im letzten Link war das doch auch schon mit dabei
Protokollierung gelöschter Dateien auf einem Fileserver
Die Ausgabe kannst du einfach mit einem where-object durchsuchen.
Heute wohl keinen guten Tag erwischt was
Gruß
im letzten Link war das doch auch schon mit dabei
Protokollierung gelöschter Dateien auf einem Fileserver
Die Ausgabe kannst du einfach mit einem where-object durchsuchen.
Heute wohl keinen guten Tag erwischt was
Gruß
Anstatt es in eine Datei zu exportieren kannst du direkt in bestimmten Spalten suchen.
$log = Get-EventLog "Security" -InstanceId 4663 | % {
New-Object psobject -Property @{
Index = $_.Index
TimeGenerated = $_.TimeGenerated
"Account Name" = $_.ReplacementStrings[1]
"Object Type" = $_.ReplacementStrings[5]
"Object Name" = $_.ReplacementStrings[6]
}
}
$log | ?{$_.'Object Name' -like "*\xyz.docx"}
Statt Get-Eventlog / Get-WinEvent nutzen:
Get-Winevent -path 'c:\mylog.evtx'
Nee, du musst bei dieser Variante dann die .toXML() Methode nutzen damit du an die einzelnen Felder kommst. Gibts hier im Forum einige Beispiele, einfach die Suche anwerfen!
$log = Get-WinEvent -path 'D:\sicherheit20170306.evtx' | %{
$xml = [xml]$_.toXML()
New-Object PSObject -Property @{
TimeGenerated = $_.TimeCreated
"Account Name" = ($xml.Event.EventData.Data | ?{$_.Name -eq 'SubjectUserName'}).'#text'
"Object Type" = ($xml.Event.EventData.Data | ?{$_.Name -eq 'ObjectType'}).'#text'
"Object Name" = ($xml.Event.EventData.Data | ?{$_.Name -eq 'ObjectName'}).'#text'
}
}
$log | ?{$_.'Object Name' -like '*asdf.txt*'}
p.s. Windows Server bietet den FSRM der kann schon von sich aus Freigaben überwachen und Aktionen beim Löschen unternehmen bzw. sie auch verhindern wenn sie bestimmte Endungen aufweisen, falls Ransomware deine Intention mit dem Skript sein sollte
https://www.frankysweb.de/windows-fileserver-vor-ransomware-crypto-locke ...
https://technet.microsoft.com/de-de/library/jj900651(v=wps.630).aspx
https://www.frankysweb.de/windows-fileserver-vor-ransomware-crypto-locke ...
https://technet.microsoft.com/de-de/library/jj900651(v=wps.630).aspx
Na dann s. Skript vom letzten Post.
Viele Daten viel zu verarbeiten ,..
Mit xpath lässt sich das auch schneller Filtern. Den Link zum xpath-Filter hatte ich dir schon mal gespostet, den übergibst du an Get-WinEvent mit -FilterXPath dann geht das auch schneller.
Mit xpath lässt sich das auch schneller Filtern. Den Link zum xpath-Filter hatte ich dir schon mal gespostet, den übergibst du an Get-WinEvent mit -FilterXPath dann geht das auch schneller.