【问题标题】:how to find account that expire 90 days from there date created如何查找从创建日期起 90 天到期的帐户
【发布时间】:2015-04-24 20:03:51
【问题描述】:

我正在尝试查找 AD 中在帐户创建后 90 天到期的所有临时帐户。这是我到目前为止所拥有的。我不确定如何计算。我没有收到任何输出。

    $expireDate = (Get-ADUser -filter * -Properties accountExpires).accountExpires
$accountExpireDate = ([System.DateTime]::FromFileTime($expireDate)).AddDays(-90).Date

Get-ADUser -Filter {whenCreated -ge $accountExpireDate} -Properties whenCreated | select name | export-csv 'c:\temp\all_temp_users.csv'enter code here

【问题讨论】:

    标签: date powershell timestamp creation datecreated


    【解决方案1】:

    以下命令将在 PowerShell v3 中返回 user1 和 user2 的 ADUser 对象,但在 powershell v2 中返回 null

    (@("user1", "user2") | Get-ADUser).Name
    

    如果您使用的是 powershell v2,我建议您尝试将您的命令更改为:

    Get-ADUser -filter * -Properties accountExpires | Select -ExpandProperty AccountExpires
    

    这将返回一个 AccountExpires 属性数组

    另一个问题是你实际上是在插入一个可能的数组

    [System.DateTime]::FromFileTime($expireDate)
    

    $expireDate 是那个可能的数组。我相信这只会返回数组第一个元素的时间。

    另一个可能的问题是您正在检查 whenCreated 是否大于到期日期。通常这个日期会小于。如果您要查找已过期的帐户,我会一起执行以下操作:

    $users = Get-ADUser -filter * -Properties AccountExpires, WhenCreated
    foreach ( $user in $users ) {
        $span = [DateTime]::FromFileTime($user.AccountExpires) - $user.WhenCreated
    
        if ( $span.Days -eq 90 ) { 
            # Do Something with user that was set to expire 90 days
        }
    } 
    

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2011-04-23
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 2015-06-02
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多