我有以下代码:
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/