takis.ch 10 Geschrieben 17. Januar 2021 Melden Teilen Geschrieben 17. Januar 2021 Wünsche euch allen erst Mal ein gesundes, glückliches und erfolgreiches neues Jahr! Ich versuche seit einigen Stunden ein PowerShell Script zu erstellen, dass aus dem Security EventLog folgende Informationen ausgibt (siehe im Anhang rot gekennzeichnete Felder): EventID, Failure Reason, Logged, Account Name, Source Network Address Da ich keine Leuchte im Scripting bin, konnte ich nach nächtelanges Suchen die Ausgabe von Account Name und Source Network Address immer noch nicht erreichen. Hat jemand eine Idee, wie ich das u.s. Script entsprechend erweitern kann? ################ Param( # Set EventLog name [Parameter(Mandatory=$True)] [ValidateSet("Security","System","Application")] [String]$EvLogname, # Set target system server name incl. test connection [Parameter(Mandatory=$True)] [ValidateScript({Test-Connection -Computername $_ -Quiet -Count 1})] [String]$TargetSystem = (hostname), # Set EventID [Parameter(Mandatory=$True)] [ValidateRange(1,9999)] [Int]$EventNr ) Get-EventLog -LogName $EvLogName -ComputerName $TargetSystem | Where-Object EventId -EQ $EventNr | Select -First 20 | Format-Table TimeWritten,InstanceID,Message -AutoSize################ Für zielführende Vorschläge bin ich euch sehr dankbar. Viele Grüße Takis Zitieren Link zu diesem Kommentar
testperson 1.675 Geschrieben 17. Januar 2021 Melden Teilen Geschrieben 17. Januar 2021 Hi, ich brauchte das zuletzt "mal schnell" in ähnlicher Form. Daher Quick'n'Dirty: $Events = Get-EventLog -LogName Security -InstanceId 4625 foreach($Event in $Events){ foreach($Line in $($Event.Message -split "`r`n" -replace "`t", "")){ if(($Line.StartsWith("Kontoname") -or $Line.StartsWith("Account Name")) -and -not $Line.EndsWith("$")){ $Line } elseif($Line.StartsWith("Fehlerursache") -or $Line.StartsWith("Failure Reason")){ $Line } elseif($Line.StartsWith("Quellnetzwerkadresse") -or $Line.StartsWith("Source Network Address")){ $Line } } } Gruß Jan Zitieren Link zu diesem Kommentar
takis.ch 10 Geschrieben 17. Januar 2021 Autor Melden Teilen Geschrieben 17. Januar 2021 (bearbeitet) 1 hour ago, testperson said: Hi, ich brauchte das zuletzt "mal schnell" in ähnlicher Form. Daher Quick'n'Dirty: $Events = Get-EventLog -LogName Security -InstanceId 4625 foreach($Event in $Events){ foreach($Line in $($Event.Message -split "`r`n" -replace "`t", "")){ if(($Line.StartsWith("Kontoname") -or $Line.StartsWith("Account Name")) -and -not $Line.EndsWith("$")){ $Line } elseif($Line.StartsWith("Fehlerursache") -or $Line.StartsWith("Failure Reason")){ $Line } elseif($Line.StartsWith("Quellnetzwerkadresse") -or $Line.StartsWith("Source Network Address")){ $Line } } } Gruß Jan Hi Jan, vielen Dank für deine schnelle Antwort. Folendes wird zurückgegeben: PS C:\Windows\system32> D:\@Logs\Get-EvantLog-4625.ps1 Account Name:- Account Name:ADMINISTRATOR Failure Reason:%%2313 Source Network Address:1.2.3.4 Account Name:- Account Name:ADMINISTRATOR Failure Reason:%%2313 Source Network Address:3.4.5.6 Weißt du wocher der erste Eintrag "Account Name:-" erscheint? Desweiteren habe eine zusätzliche "elseif" Schleife eingefügt... } elseif($Line.StartsWith("Account Domain") -or $Line.StartsWith("Account Domain")){ $Line bekomme dann folgendes zurück: Account Name:- Account Domain:- Account Name:rqxadmin Account Domain: Failure Reason:%%2313 Source Network Address:1.2.3.4 Was mache ich falsch? Kann man noch den Time stamp des Logeintrags einfügen (TimeGenerated)? Thx bearbeitet 17. Januar 2021 von takis.ch Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 17. Januar 2021 Melden Teilen Geschrieben 17. Januar 2021 (bearbeitet) vor 15 Minuten schrieb takis.ch: Weißt du wocher der erste Eintrag "Account Name:-" erscheint? Der erscheint, weil Du mit der ersten if-Bedingung danach suchst. Zitat Desweiteren habe eine zusätzliche "elseif" Schleife eingefügt... } elseif($Line.StartsWith("TimeGenerated") -or $Line.StartsWith("TimeGenerated")){ $Line Nur um sicher zu gehen - wo hast Du die eingefügt? Bitte Deinen kompletten Code posten - so wie Du ihn verwendest! Übrigens suchst Du damit 2 mal nach dem englischen Begriff. Wenn Du Dir Jans Code nochmal ansiehst, merkst Du vielleicht, dass er nach den Deutschen oder Englischen Begriffen sucht. Wenn sicher ist, dass Du nur Deutsche oder nur Englische Ergebnisse bekommst, kannst Du das jeweils andere auch weglassen. Zitat bekomme aber Keinen zusätzlichen Eintrag, sondern den kompletten Inhalt der Events. Was mache ich falsch? Schwer zu sagen, ohne Deinen Code zu sehen und ohne Dein System zu kennen. Achja ... und bitte nicht immer die kompletten Beiträge zitieren, sondern nur das, worauf sich Deine Antworten oder Nachfragen beziehen. bearbeitet 17. Januar 2021 von BOfH_666 Zitieren Link zu diesem Kommentar
testperson 1.675 Geschrieben 17. Januar 2021 Melden Teilen Geschrieben 17. Januar 2021 (bearbeitet) vor 17 Minuten schrieb takis.ch: Weißt du wocher der erste Eintrag "Account Name:-" erscheint? Guck ins Event. Ich vermute, dass da bei mir der Computername steht, den ich mit "-not $Line.EndsWith("$")" aussortiere. vor 17 Minuten schrieb takis.ch: bekomme aber Keinen zusätzlichen Eintrag, sondern den kompletten Inhalt der Events. Das wird daran liegen, dass in "$Event.Message" keine Zeile ($Line) mit "TimeGenerated" anfängt. Das wäre dann "$Event.TimeGenerated". vor 17 Minuten schrieb takis.ch: Was mache ich falsch? Du solltest dich ein wenig mit PowerShell - insbesondere den Grundlagen - auseinandersetzen und nicht nur Code "Copy&Pasten". ;) bearbeitet 17. Januar 2021 von testperson 1 Zitieren Link zu diesem Kommentar
takis.ch 10 Geschrieben 17. Januar 2021 Autor Melden Teilen Geschrieben 17. Januar 2021 15 minutes ago, testperson said: Du solltest dich ein wenig mit PowerShell - insbesondere den Grundlagen - auseinandersetzen und nicht nur Code "Copy&Pasten". ;) Bin seit ein Paar Tagen dabei mich mit PowerShell zu beschäftigen und wirklich dankbar für jede eurer Info. Wenn man mit Programmieren nichts am Hut hat, tut man sich etwas schwer die Zusamenhänge zu verstehen. Vielen Dank für eure Zeit und Geduld. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.