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!

Recommended Posts

Posted

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

Posted

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

Posted (edited)
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

 

 

Edited by takis.ch
Posted (edited)
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.

Edited by BOfH_666
Posted (edited)
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". ;)

Edited by testperson
  • Like 1
Posted
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.

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...