如何查找从创建日期起 90 天过期的帐户



我正在尝试查找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:tempall_temp_users.csv'enter code here
以下命令

将在 PowerShell v3 中返回用户 1 和用户 2 的 ADUser 对象,但在 PowerShell v2 中返回 null

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

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

Get-ADUser -filter * -Properties accountExpires | Select -ExpandProperty 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
    }
} 

相关内容

  • 没有找到相关文章

最新更新