Get-EventLog -LogName Security -after (Get-date -hour 0 -minute 0 -second 0)| ?{(4624) -contains $_.EventID -and $_.Message -match 'Logon type:\s+(3)\s'} $filterXml = @'
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[
System[(EventID = 4624)]
and
System[(TimeCreated[timediff(@SystemTime) <= 86400000])]
and
EventData[Data[@Name="LogonType"] and (Data=3)]
]
</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $filterXml | %{
[xml]$xml = $_.ToXml()
(new-object -Type PSObject -Property @{
Time = $_.TimeCreated
NamePC = $xml.getElementsByTagName("Data") | where{$_.name -eq "WorkstationName"} | Select-Object -ExpandProperty "#text"
ClientIP = $xml.getElementsByTagName("Data") | where{$_.name -eq "IpAddress"} | Select-Object -ExpandProperty "#text"
UserName = $xml.getElementsByTagName("Data") | where{$_.name -eq "TargetUserName"} | Select-Object -ExpandProperty "#text"
UserDomain = $xml.getElementsByTagName("Data") | where{$_.name -eq "TargetDomainName"} | Select-Object -ExpandProperty "#text"
})
} | select Time, NamePC, ClientIP, @{N='Username';E={'{0}\{1}' -f $_.UserDomain,$_.UserName}}