Albert Widjaja
asked on
Modifying PowerShell script to get the Security logs for user Domain\Administrator from all AD domain controllers ?
Hi All,
I've managed to found this script (by SubSun), which sift through the Event logs for the Terminal Server:
So I wonder if it is can be configured / modified to filter the Security event ID 4624 only for the user DOMAIN\Administrator like below example events:
I need to know the:
Keywords: Audit Success
Logon Type: 3
Date: 12/09/2016 12:45:25 PM
Security ID: Domain\Administrator
Source Network Address: 10.188.5.199
Is that possible to customize the script above ?
I've managed to found this script (by SubSun), which sift through the Event logs for the Terminal Server:
Get-WinEvent -ComputerName PRODTS03-VM -FilterHashTable @{LogName="Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational";StartTime=(get-date).AddDays(-1);ID=1149} | %{
New-Object PSObject -Property @{
MachineName = $_.MachineName
TimeCreated = $_.TimeCreated
User = $_.Properties[0].Value
Domain = $_.Properties[1].Value
SourceIP = $_.Properties[2].Value
}
}| Select MachineName,TimeCreated,User,Domain,SourceIP | ft -AutoSize
So I wonder if it is can be configured / modified to filter the Security event ID 4624 only for the user DOMAIN\Administrator like below example events:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 12/09/2016 12:45:25 PM
Event ID: 4624
Task Category: Logon
Level: Information
Keywords: Audit Success
User: N/A
Computer: PRODDC01-VM.domain.com
Description:
An account was successfully logged on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
New Logon:
Security ID: MyDomain\Office.Manager
Account Name: Office.Manager
Account Domain: MyDomain
Logon ID: 0xf99126a2
Logon GUID: {a5bf47f4-d53a-6ff9-2139-a4ceb9e5b284}
Process Information:
Process ID: 0x0
Process Name: -
Network Information:
Workstation Name:
Source Network Address: 10.188.5.34
Source Port: 60358
Detailed Authentication Information:
Logon Process: Kerberos
Authentication Package: Kerberos
Transited Services: -
Package Name (NTLM only): -
Key Length: 0
This event is generated when a logon session is created. It is generated on the computer that was accessed.
The subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.
The logon type field indicates the kind of logon that occurred. The most common types are 2 (interactive) and 3 (network).
The New Logon fields indicate the account for whom the new logon was created, i.e. the account that was logged on.
The network fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.
The authentication information fields provide detailed information about this specific logon request.
- Logon GUID is a unique identifier that can be used to correlate this event with a KDC event.
- Transited services indicate which intermediate services have participated in this logon request.
- Package name indicates which sub-protocol was used among the NTLM protocols.
- Key length indicates the length of the generated session key. This will be 0 if no session key was requested.
I need to know the:
Keywords: Audit Success
Logon Type: 3
Date: 12/09/2016 12:45:25 PM
Security ID: Domain\Administrator
Source Network Address: 10.188.5.199
Is that possible to customize the script above ?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
sorry for the typo, just noticed that. typing on touch screen is still a pain for me. correct the typo below though I guess you already know the meaning. :)
"I would use MS utility Log Parser rather than spend hours to write and debug a script."
as I remember there a few GUI versions though they are still based on the utility's command line to run queries.
actually in my understanding, it should be easier to use Log Parser command line to query from multiple servers.
"I would use MS utility Log Parser rather than spend hours to write and debug a script."
as I remember there a few GUI versions though they are still based on the utility's command line to run queries.
actually in my understanding, it should be easier to use Log Parser command line to query from multiple servers.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
@Footech, many thanks for the script mate,
is it possible to combine the script above with:
is it possible to combine the script above with:
Get-ADDomainController -Filter * | Select-Object name | Get-WinEvent -ComputerName $_.Name -FilterHashTable @{LogName="Security";StartTime=(get-date).AddDays(-1);ID=4624;data="administrator"} | % {
New-Object PSObject -Property @{
MachineName = $_.MachineName
TimeCreated = $_.TimeCreated
User = $_.Properties[5].Value
Domain = $_.Properties[6].Value
LogonType = $_.Properties[8].Value
SourceIP = $_.Properties[18].Value
Keywords = $_.KeywordsDisplayNames -join ";"
}
} | Select MachineName,TimeCreated,User,Domain,LogonType,SourceIP,Keywords | ft
ASKER
Thanks !
Sure.
Get-ADDomainController -Filter * | Select-Object -expand name | % {
Get-WinEvent -ComputerName $_ -FilterHashTable @{LogName="Security";StartTime=(get-date).AddDays(-1);ID=4624;data="administrator"} | % {
New-Object PSObject -Property @{
MachineName = $_.MachineName
TimeCreated = $_.TimeCreated
User = $_.Properties[5].Value
Domain = $_.Properties[6].Value
LogonType = $_.Properties[8].Value
SourceIP = $_.Properties[18].Value
Keywords = $_.KeywordsDisplayNames -join ";"
}
}
} | Select MachineName,TimeCreated,User,Domain,LogonType,SourceIP,Keywords | ft
ASKER
You are so awesome ;-)
ASKER
There is no GUI with Log Parser and the command to select all domain controllers in the domain with specific event logs is hard to find on the Intenret as well.
But yes, thanks anyway for the response.