如何查找过去 90 天内创建的新 Active Directory 帐户?

Rob*_*Rob 14 active-directory

如何查找过去 90 天内创建的新 Active Directory 帐户?

有谁知道该由谁来做?我想不通。

提前致谢。

sys*_*138 17

对于后代,dsquery 就是为这种搜索而设计的。AD 确实保留了一个“whenCreated”字段,这使得您可以轻松地使用您选择的工具进行搜索。

dsquery * -filter "(whenCreated>=20101022083730.0Z)"

举个例子。您可以基于现在 - 90 天以编程方式创建时间字符串。

  • +1 可能想使用 `"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"` 来过滤掉计算机和其他对象。 (8认同)

小智 9

尝试以下方法来拉取在过去 30 天内创建的用户。

Get-ADUser -Filter * -Properties whenCreated | Where-Object {$_.whenCreated -ge ((Get-Date).AddDays(-30)).Date}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这个答案在技术上有效,但它并不是很有效,尤其是在拥有数千个用户的大型 AD 环境中。您实际上是在查询所有用户的 AD,然后在本地计算机的内存中过滤出满足“where”条件的用户。相反,您实际上应该使用 Filter 参数(或 LDAPFilter)在结果返回到您的机器之前对其进行过滤,并完全避免使用 Where 管道。 (5认同)

Mat*_*ieu 6

上面显示的 Powershell 版本的替代方案,效率更高,因为它在过滤之前不会将所有用户加载到内存中(您应该直接在 Get-ADUser cmdlet 上进行过滤,而不是使用 Where-Object):

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}
Run Code Online (Sandbox Code Playgroud)