【问题标题】:Querying custom LDAP filtering with last created 24 hours查询最近创建 24 小时的自定义 LDAP 过滤
【发布时间】:2020-10-06 01:23:00
【问题描述】:

我想使用 LDAP 查询返回过去 24 小时内创建的具有以下属性的所有用户对象。

到目前为止,我喜欢以下内容。

(&(objectCategory=person)(objectClass=user))

属性:

samaccountname (username)
givenName (first name)
sn (last name)
mail (mail addresses)

谢谢,

【问题讨论】:

    标签: powershell active-directory ldap


    【解决方案1】:

    这是我对该问题的 powershell 答案。不是 LDAP 过滤器,但它会得到你想要的信息。

    $1DayAgo = ((Get-Date).AddDays(-1)).Date
    
    $UserProperties = "samaccountname", "givenName", "sn", "mail"
    
    Get-ADUser -Filter {whenCreated -ge $1DayAgo} -Properties $UserProperties
    

    【讨论】:

    • FWIW,-Filter 参数被转换为 LDAP,所以本质上它是一个 LDAP 过滤器:D
    【解决方案2】:

    whenCreated比较,使用日期时间格式yyyyMMddHHmmss.fZ

    $since = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyyMMddHHmmss.fZ')
    Get-ADUser -LDAPFilter "(whenCreated>=$since)"
    

    【讨论】:

    • 嗨 Mathias 我如何通过 LDAP 搜索过滤器进行操作?我需要在应用程序中定义 LDAP 配置。
    • @Arbelac 没有办法(至少我知道)构建描述“过去 24 小时”的静态过滤器 - 您每次都需要使用绝对偏移量填充过滤器跨度>
    • 我明白了。那么如何过滤以 PRD 和/或 TST 前缀开头且只有 ENABLED 用户的 samaccountname 呢?
    【解决方案3】:

    您需要一些代码来为“24 小时前”(或您想要的任何增量时间)生成一个字符串。日期时间字符串格式需要为 YYYYMMDDHHmmss.0Z - 时间戳为 UTC。

    以下过滤器查找自 UTC 昨天上午 11 点以来创建的所有 Active Directory 用户:

    (&(objectCategory=person)(objectClass=user)(whenCreated>=20200617110000.0Z))

    如果您想查找在上一个时间增量中更改的帐户,请将 whenCreated 更改为 whenChanged

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 2012-05-10
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 2016-06-17
      • 1970-01-01
      相关资源
      最近更新 更多