der-nickel
Goto Top

Via Powershell Eventlog auswerten und Ausgabe Filtern

Ich möchte unser EventLog auf fehlerhafte Anmeldungen Prüfen und nur bestimmte Werte zurück bekommen. Dazu verwende ich folgenden Code:

PS> $Event=(Get-EventLog -LogName:Security -ComputerName:DCSERVER -Newest 1600 | Where-Object {$_.EventID -eq "675" -and $_.TimeGenerated -gt (Get-Date).AddMinutes(-30)}|fl Message)  

als Ergebnis erhalte ich folgendes:

PS> $Event

Message : Fehlgeschlagene Vorbestätigung:

              Benutzername:    Test-Benutzer

              Benutzerkennung:        %{S-1-5-21-1114325384-69494389-911163043-2206}

              Dienstname:    krbtgt/<DOMÄNE>

              Vorauthentifizierungstyp:    0x0

              Fehlercode:    0x19

              Clientadresse:    192.168.0.5


Jetzt möchte ich folgende Meldungen zurück bekommen:

Benutzername:    Test-Benutzer
Clientadresse:    192.168.0.5

und

Anzahl der Fehlerhaften Anmeldungen: 1

Kann mir hier jemand helfen? Ich habe es schon mit Select-String versucht, dies liefert mir jedoch keine Rückmeldung... also die Ausgabe bleibt leer, egal was ich als Pattern angebe, vermutlich weil die Quell-Ausgabe kein reiner String ist und somit im falschen Format vorliegt. Wäre euch echt dankbar!

Viele Grüße,

nickel

Content-ID: 145305

Url: https://administrator.de/contentid/145305

Ausgedruckt am: 17.11.2024 um 07:11 Uhr

der-nickel
der-nickel 21.06.2010 um 14:44:41 Uhr
Goto Top
Ok... das Zählen der fehlerhaften Anmeldungen habe ich schon hin bekommen in dem ich einfach alles in Klammern mit .Count zähle:

PS> $Event=(Get-EventLog -LogName:Security -ComputerName:DCSERVER -Newest 1600 | Where-Object {$_.EventID -eq "675" -and $_.TimeGenerated -gt (Get-Date).AddMinutes(-30)}).Count  
PS> $Event
18
der-nickel
der-nickel 22.06.2010 um 09:18:35 Uhr
Goto Top
Hat niemand eine Idee? Wir möchten hier gern auf teure Lösungen verzichten und o.g. Lösung würde uns schon völlig ausreichen.
der-nickel
der-nickel 01.07.2010 um 14:31:42 Uhr
Goto Top
Hallo,

ich habe die Lösung mittlerweile selbst herausgefunden:

 $Event | fl TimeGenerated,Message | Out-String -Stream | Select-String @("TimeGenerated","Benutzername","Clientadresse")   

Mit 'Out-String -Stream' wandelt man das Objekt in einen String um und kann diesen dann anschließend auch mit Select-String filtern...

Viele Grüße,

Sebastian