我想使用 LDAP 查询返回过去 24 小时内创建的具有以下属性的所有用户对象。
到目前为止,我有如下。
(&(objectCategory=person)(objectClass=user))
属性:
samaccountname (username)
givenName (first name)
sn (last name)
mail (mail addresses)
谢谢
您需要一些代码来生成"24 小时前"(或您想要的任何增量时间(的字符串。日期时间字符串格式需要为 YYYYMMDDHHmmss.0Z -- 时间戳为 UTC。
以下过滤器查找自昨天上午 11 点 UTC 以来创建的所有 Active Directory 用户:
(&(objectCategory=person)(objectClass=user)(whenCreated>=20200617110000.0Z))
如果要查找在上一个时间增量中已更改的帐户,请将"创建时间"更改为"更改时间">
这是我对这个问题的Powershell回答。不是 LDAP 过滤器,但它会获取您想要的信息。
$1DayAgo = ((Get-Date).AddDays(-1)).Date
$UserProperties = "samaccountname", "givenName", "sn", "mail"
Get-ADUser -Filter {whenCreated -ge $1DayAgo} -Properties $UserProperties
使用日期时间格式与whenCreated
进行比较yyyyMMddHHmmss.fZ
:
$since = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyyMMddHHmmss.fZ')
Get-ADUser -LDAPFilter "(whenCreated>=$since)"