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 

有人可以帮忙吗?

以另一种方式过滤?

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

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

您可以将search结果通过pipe道传递给Where-Object以获取仅启用的用户:

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

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

get-aduser -filter(启用-eq $ true)-searchbase“OU”