powershell Search-ADAccount -此操作返回,因为超时期限已过

0vvn1miw  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(160)

下面的代码:

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,我也没有得到任何其他错误或信息。
有人对此有什么意见吗?

ldioqlga

ldioqlga1#

在这种情况下,最好使用Get-ADUser,并为您想要的所有条件使用适当的过滤器,而不是返回大量结果,然后在这些结果上使用where子句。
还可以考虑使用-searchbase选项来限制搜索的OU(如果所有目标帐户都在特定OU中)。

$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

相关问题