PowerShell - 查找处于非活动状态且未被禁用的用户

PowerShell - 查找处于非活动状态且未被禁用的用户

我写了这个cmdlet:

Search-ADAccount -filter {(enabled -eq $true)} -Users Only -SearchBase "ou=FirstOU,dc=domain,dc=com" -AccountInactive -TimeSpan 30

但它输出一个错误:

Search-ADAccount : A parameter cannot be found that matches parameter name 'fil
ter'.
At line:1 char:25
+ Search-ADAccount -filter <<<<  {(enabled -eq $true)} -UsersOnly -SearchBase "
ou=FirstOU,dc=domain,dc=com" -AccountInactive -TimeSpan 30
    + CategoryInfo          : InvalidArgument: (:) [Search-ADAccount], Paramet
   erBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory
   .Management.Commands.SearchADAccountCmdlet

有人可以帮忙吗?

答案1

用其他方式过滤吗?:

Search-ADAccount -UsersOnly -AccountInactive -TimeSpan 30.00:00:00 |where {$_.enabled}

答案2

Search-ADAccount接受参数-Filter。请参阅Technet 文档Get-Help Search-ADAccount获取受支持的参数列表。

您可以将搜索结果传输至以下地址以Where-Object仅获取已启用的用户:

Search-ADAccount -UsersOnly -SearchBase "ou=FirstOU,dc=domain,dc=com" -AccountInactive -TimeSpan 30 |
    Where-Object { $_.Enabled -eq $true }

答案3

尝试 get-ADUser 命令,它可以让您更好地过滤用户。

get-aduser -filter (已启用 -eq $true) -searchbase "OU"

相关内容