powershellselect-stringget-winevent

Get-WinEvent and Select-string filter line result


I´m trying to use get-winevent + select string to filter and get the IP from events 4625.

After get-winevent I want to filter the results to show only "Source Network Address:" line, which will provide me the list of IP´s I need to block.

Below is an example of the results, thanks in advance!

PS C:\Users\Administrator> Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625} -MaxEvents 1 | fl

TimeCreated : 15/02/2023 07:43:25 ProviderName : Microsoft-Windows-Security-Auditing Id : 4625 Message : An account failed to log on.

           Subject:
            Security ID:            S-1-0-0
            Account Name:           -
            Account Domain:         -
            Logon ID:               0x0

           Logon Type:                      3

           Account For Which Logon Failed:
            Security ID:            S-1-0-0
            Account Name:           ADMINISTRATOR
            Account Domain:

           Failure Information:
            Failure Reason:         Unknown user name or bad password.
            Status:                 0xC000006D
            Sub Status:             0xC0000064

           Process Information:
            Caller Process ID:      0x0
            Caller Process Name:    -

           Network Information:
            Workstation Name:       -
            Source Network Address: 209.45.48.94
            Source Port:            0

           Detailed Authentication Information:
            Logon Process:          NtLmSsp
            Authentication Package: NTLM
            Transited Services:     -
            Package Name (NTLM only):       -
            Key Length:             0

Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625} -MaxEvents 100 | Select-String -Pattern "Source Network Address:" tried this way but no results showed


Solution

  • (Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625} -MaxEvents 1).Message.split(':') -split("`t") | ? { $_ -match '\d+\.\d+\.\d+.\d+'} | % {$_ -replace ("`n","")}