Powershell查找创建帐户的用户的名称

时间:2016-10-17 17:38:38

标签: windows powershell

我想根据创建的帐户过滤用户名

例如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 }:

由于

1 个答案:

答案 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