【问题标题】:Use Search-ADAccount to find all accounts with Account Expiration Date Not Set使用 Search-ADAccount 查找所有未设置 Account Expiration Date 的帐户
【发布时间】:2023-03-20 21:04:01
【问题描述】:

Powershell 中有没有办法列出域中没有设置帐户到期日期的所有 AD 帐户?即帐户到期日期设置为“从不”。

我可以使用 Get-ADuser 来获取单个帐户的到期时间。

get-aduser username | Select-Object -Property name,Enabled,AccountExpirationDate,DistinguishedName | Where-Object {$_.AccountExpirationDate -eq '`n'}

但是,有没有办法使用“Search-ADAccount -AccountExpiring.....”来获取域中没有设置帐户到期日期的所有帐户的列表,或者有更好的方法来做到这一点?

当我使用以下命令时,我没有得到任何返回信息,但是我设置了一个未设置到期日期(即从不)的测试帐户来测试命令,但是该帐户未显示在结果中。

Search-ADAccount -AccountExpiring | Select-Object -Property name,AccountExpirationDate | Where-Object {$_.AccountExpirationDate -eq '`n'}

【问题讨论】:

    标签: powershell


    【解决方案1】:

    Get-ADUser 解决方案

    如果您使用正确的过滤器,您仍然可以使用Get-ADUser 查找帐户:

    Get-ADUser -Filter {-not(AccountExpirationDate -like "*") } -Properties AccountExpirationDate | Select-Object -Property name,Enabled,AccountExpirationDate,DistinguishedName
    

    这将为您提供没有为属性AccountExpirationDate 设置值的每个帐户。


    使用 Search-ADAccount 的解决方案

    如果您仍想使用Search-ADAccount,您必须提供一个时间戳,直到帐户到期(take a look at the ref)。没有选项可以搜索未设置任何值的帐户。您总是必须提供某种日期时间。

    例如,如果您想查找所有在 2 周内到期的帐户,您必须选择:

    第一:

    帐户到期日期的解决方案:

    Search-ADAccount -AccountExpiring -DateTime ((Get-Date).AddDays(14))
    

    第二:

    帐户到期前剩余天数的解决方案:

    Search-ADAccount -AccountExpiring -Timespan "14"
    

    【讨论】:

    • @jazzBox well.. ofc.. 这就是为什么我把它作为一个解决方案提出来..
    【解决方案2】:

    我找到了一个解决方案,结合了上面的 Paxz 回复和这个 Technet thread。如果不导出每个用户的帐户到期日期并将其格式化为可读的日期时间字符串,“AccountExpirationDate”很难有效地过滤掉 AD。

    上面链接的 Technet 文章解释说:“accountExpires AD 属性是一个大整数(64 位),表示日期(以 UTC 为单位),表示自 1601 年 1 月 1 日凌晨 12:00 以来的 100 纳秒间隔数。 AccountExpirationDate 参数是一种属性方法,将 accountExpires 的值转换为当地时区对应的日期”。根据额外研究,当帐户设置为永不过期时,它的“accountexpires”整数将为 9223372036854775807。

    “Get-ADUser”可用于过滤“accountexpires”整数等于“9223372036854775807”的所有帐户。这避免了为域中的每个帐户转换日期的需要。

    Get-ADUser -filter {Enabled -eq 'True' -and accountexpires -eq '9223372036854775807'} | Select-Object name,enabled,accountexpires,distinguishedName
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-28
      • 2021-01-19
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      相关资源
      最近更新 更多