【问题标题】:Active Directory ADUser whenCreated PropertyActive Directory ADUser whenCreated 属性
【发布时间】:2021-05-11 22:44:22
【问题描述】:

我创建了(Server 2019)一个 ADUser:TestUser100。

New-ADUser -name TestUser100

这个用户有一个属性:whenCreated ("11.05.2021 15:00:00"),当我试图找到这个用户时:

Get-ADUser -filter{whenCreated -eq "11.05.2021 15:00:00"} -properties whenCreated

我什么都没有,当我搜索时:创建它有效,为什么?

Get-ADUser -filter{Created -eq "11.05.2021 15:00:00"} -properties Created

【问题讨论】:

  • 我还没有时间对此进行全面研究,但我的猜测是Created 是一个计算属性,它是从 AD 转换为本地时间的 whenCreated 属性的副本作为 @987654326 @,而 whenCreated 是 AD 通用字符串。

标签: powershell active-directory


【解决方案1】:

whenCreated 属性以字符串形式存储在 AD 中,格式为 20111101000413.0Z。 (zulu 格式)

当您将其与另一个字符串 11.05.2021 15:00:00 进行比较时,结果将为 $false。

PowerShell 方便地将该属性映射到属性 Created,这是转换为 Datetime 对象的 whenCreated 字符串。
因为在您的过滤器中Created 位于等式的左侧,所以您提供给它的字符串会被 PowerShell 转换为 Datetime 对象,并且所有的比较都符合您的预期。

BTW -Filter 是一个字符串,不是脚本块,所以应该是

"Created -eq '11.05.2021 15:00:00'"

【讨论】:

    【解决方案2】:

    当您按whenCreatedwhenChanged 过滤时,Get-ADUser 期待DateTime 对象。

    这应该可行:

    $date = '11.05.2021 15:00:00' -as [datetime]
    
    Get-ADUser -Filter {whenCreated -eq $date}
    

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多