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

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

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

有人知道该由谁来做这件事吗?我不知道。

提前致谢。

答案1

为了方便后人,dsquery 是为这种搜索而设计的。AD 确实保留了一个“whenCreated”字段,这使得使用您选择的工具进行搜索变得容易。

dsquery * -filter "(创建时间>=20101022083730.0Z)"

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

答案2

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

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

答案3

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

$now = ((Get-Date).AddDays(-90)).Date
Get-ADUser -Filter {whenCreated -ge $now}

答案4

以下是另一个站点中某人检索按创建日期排序的所有 AD 帐户的示例:

http://www.experts-exchange.com/Security/Operating_Systems_Security/Windows/Q_21117191.html

您可以从 Active Directory 中获取每个帐户的创建日期。每个 AD 对象都有一个 WhenCreated 和 WhenChanged 属性。您可以使用 LDIFDE 实用程序将这些属性转储到平面文件中,也可以使用 CSVDE 将它们转储到逗号分隔的文件中(这两个实用程序都随 Windows 2000 提供)。

以下是将 Company.com 域中 Phoenix OU 中的用户对象的两个属性转储到控制台以供查看的语法(整个条目应输入为一行):

ldifde -d ou=phoenix,dc=company,dc=com -l whencreated, whenchanged -p onelevel -r "(ObjectCategory=user)" -f con

如果您想要将转储保存到文件,请将 -f 开关从 con 更改为文件名。

上次登录时间戳采用以下格式:YYYYMMDDHHMMSS,小时采用世界协调时间显示。时间戳 20040115182937.0Z 对应于 2004 年 1 月 15 日 18:29:37 UCT。

USRSTAT 很慢,而且您获得的报告必须与 LDIFDE 转储合并。因此,我编写了一个脚本,该脚本在每个域控制器上搜索用户对象,然后列出本地登录时间和创建时间。用户登录时间戳需要从长整数转换。我借用了 Richard L. Mueller (www.rlmueller.net/Programs) 的转换代码。Richard 的完整脚本还从注册表中获取本地时区,并将时间从 UCT 转换为本地时间。真棒

相关内容