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


13

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

有谁知道该怎么做?我不知道。

提前致谢。

Answers:


17

对于后代,dsquery专门用于这种搜索。AD确实保留一个“ whenCreated”字段,这使您可以轻松地使用所选工具进行搜索。

dsquery * -filter“(whenCreated> = 20101022083730.0Z)”

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


8
+1可能要用来"(&(objectClass=user)(whenCreated>=20101022083730.0Z))"过滤掉计算机和其他对象。
jscott 2010年

对于具有大量帐户的活动目录,这非常慢。似乎对数据进行线性传递。
Nicholas DiPiazza

8

请尝试以下操作以拉近最近30天创建的用户。

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

4
尽管此答案在技术上可行,但它并不是非常有效,特别是在具有成千上万用户的大型AD环境中。您实质上是在查询所有用户的AD,然后在本地计算机的内存中过滤掉符合“ where”条件的用户。相反,实际上应该使用Filter参数(或LDAPFilter)对结果进行过滤,然后再将结果返回到计算机中,并完全避免使用Where管道。
Ryan Bolger 2015年

5

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

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


0

这是另一个网站的示例,该用户检索按创建日期排序的所有AD帐户:

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

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

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

ldifde -d ou =凤凰城,dc =公司,dc = com -l创建时,更改时-p onelevel -r“(ObjectCategory = user)” -f con

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

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

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.