导出过滤排序AD用户

Export filter sort AD users

我目前正在寻找一种创建 powershell 脚本的解决方案,该脚本允许我获取 Aduser,但在创建级别上,例如:自上个月以来我创建了 50 个用户。我的同事创建了 20 个。我只想导出并显示我创建的用户,即使是在同一时期。 这可能吗? 我目前不知道从哪里开始或如何处理这个问题。任何类型的帮助将不胜感激。

would this be possible?

当然可以,如果您将域控制器安全事件日志存储那么久。

对象的创建者不记录在目录本身中,但会记录信息,假设 correctly configured audit policy 在 DC 上。

如果您有 SIEM 或至少有一些中央日志存储,这显然更容易报告。但如果没有,您可以直接向域控制器查询这些日志:

# Event id 5137 == a directory object was created
$EventId = 5137
# We only want events instigated by ourselves
$Subject = $env:USERNAME
# ... over the last month
$Since = (Get-Date).AddMonths(-1)

# Prepare XPath filter
$timestamp = Get-Date $Since -Format s
$XPathFilter = "*[System[TimeCreated[@SystemTime>'$timestamp']][EventID=$EventId]][EventData[Data[@Name = 'SubjectUserName'] = '$Subject']]"

# Search all the domain controllers
$ObjectCreationEvents = Get-ADDomainController -Filter * |ForEach-Object {
  Get-WinEvent -FilterXPath $XPathFilter -LogName Security -ComputerName $_.HostName
}

生成的事件也将具有每个对象的唯一 objectGuid 值,使我们能够再次轻松定位它们:

$ObjectCreationEvents |ForEach-Object {
  # Extract object ID
  $guid = $_.ToXml().SelectSingleNode('//*[local-name() = "Data" and @Name = 
"ObjectGUID"]').InnerText

  # Query the actual object
  Get-ADObject -Identity $guid
}