我想根据创建的帐户过滤用户名
例如sometext@gmail.com是用户名
目前我有以下code
Get-WinEvent -FilterHashtable @{logname='security';id=624;data='sometext@gmail.com'}
我工作的笔记说,帐户创建是事件ID 624,626
但是我无法成功返回上述过滤器
如何过滤与创建的帐户关联的用户名?
我还尝试了以下操作,其中显示了帐户创建日期,但未显示创建帐户的用户。
Get-EventLog -FilterHashtable | Where-Object { $_.EventID -eq 4720 }:
由于
答案 0 :(得分:1)
624是“用户帐户已创建”事件prior to Windows Vista的ID,4720是Windows Vista and newer中同一事件的ID。根据{{3}},您应该能够从事件消息中提取创建新帐户的信息:
Subject: Security ID: TESTLAB\Santosh Account Name: Santosh Account Domain: TESTLAB Logon ID: 0x8190601 New Account: Security ID: TESTLAB\Random Account Name: Random Account Domain: TESTLAB Attributes: SAM Account Name: Random Display Name: Random User Principal Name: Random@AD.TESTLAB.NET ...
这样的事情应该有效:
$upn = 'sometext@gmail.com'
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4720} |
Where-Object { $_.Message -match "user principal name:\s+$upn" } |
Select-Oject -Expand Message |
Select-String '(?<=subject:\s+security id:\s+\S+\s+account name:\s+)\S+' |
Select-Object -Expand Matches |
Select-Object -Expand Value