Search-ADAccount-由于超时时间已到期,因此返回此操作

时间:2018-07-03 21:02:10

标签: powershell active-directory timeout

我有以下代码:

Search-ADAccount -AccountExpiring -TimeSpan "90" -ResultPageSize:100 -ErrorAction SilentlyContinue |
    where {$_.samaccountname.StartsWith("X") -or $_.samaccountname.StartsWith("Y")} |
    Select-Object samaccountname,Name,AccountExpirationDate |
    Export-Csv $PSScriptRoot\Results\AD_Expiration_Dates_Accounts_Next_90_days_$((Get-Date).ToString('dd_MM_yyyy')).csv -NoTypeInformation -Append

无论是否使用-ResultPageSize:选项,我都会不断收到标题中提到的错误。

有趣的是,当我更改-TimeSpan值时,我得到的值或多或少,因此数据似乎是连贯的,但始终以相同的错误结尾。

问题是,我不确定我是否可以相信这些价值观。即使我删除了-ErrorAction SilentlyContinue选项,也没有收到其他任何错误或信息。

有人对此有任何输入吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,最好是将Get-ADUser与适合您想要的所有条件的过滤器一起使用,而不是返回大量结果,然后使用where子句他们。

还考虑使用-searchscope选项来限制搜索的OU(如果所有目标帐户都在特定的OU中)。

最初,我会忽略select语句,以查看您是否获得所需的帐户(在这种情况下,过滤器后不需要-properties AccountExpirationDate

$now = get-date
$90days = (get-date).adddays(90)
get-aduser -filter '(AccountExpirationDate -gt $now) -and (AccountExpirationDate -le $90days) -and (samAccountName -like "X*" -or sAMAccountName -like "Y*" )' -properties AccountExpirationDate 
| Select-Object samaccountname,Name,AccountExpirationDate