我有以下代码:

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值时,我得到的值或多或少,因此数据似乎是连贯的,但始终以相同的错误结尾。

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

有人对此有任何意见吗?

最佳答案

在这种情况下,最好是将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

关于powershell - Search-ADAccount-由于超时时间已到期,因此返回此操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51162770/

10-08 21:51