Jump to content

PowerShell, EventID 4625, Fehlerhafte Anmeldeversuche anzeigen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

 

 

LogonFailure.png

Link zu diesem Kommentar

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

Link zu diesem Kommentar
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 von takis.ch
Link zu diesem Kommentar
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 von BOfH_666
Link zu diesem Kommentar
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 von testperson
Link zu diesem Kommentar
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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...