PowerShell-将搜索限制为仅一个OU

PowerShell-将搜索限制为仅一个OU

我有这个 cmdlet,我想将结果限制为仅一个 OU:

Get-ADUser -Filter  {(Enabled -eq $false)} | ? { ($_.distinguishedname -notlike '*Disabled Users*') } 

现在我尝试使用

-searchbase "ou=FirstOU,dc=domain,dc=com"

但如果我使用-SearchBase我会得到这个错误:

Where-Object : A parameter cannot be found that matches parameter name 'searchb
ase'.
At line:1 char:114
+ Get-ADUser -Filter  {(Enabled -eq $false)} | ? { ($_.distinguishedname -notli
ke '*Disabled Users*') } -searchbase <<<<  "ou=FirstOU,dc=domain,dc=com"
    + CategoryInfo          : InvalidArgument: (:) [Where-Object], ParameterBi
   ndingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
   ands.WhereObjectCommand

我想要做的是从特定的 OU 中获取所有已禁用的用户,但是在 FirstOU 内部有一个我想排除的 OU:“已禁用用户”OU。

您可能已经猜到了,我想在特定 OU 中查找不在该 OU 内的“禁用用户”OU 中的禁用用户。

我的结构:

Forest
   FirstOU
      Users,groups,etc...
      Disabled Users OU

答案1

-SearchBase参数必须与 Get-ADUser 一起使用,而不是 Where-Object(别名为 ?)。这应该有效:

Get-ADUser -Filter {(Enabled -eq $false)} -SearchBase "ou=FirstOU,dc=domain,dc=com" | ? { ($_.distinguishedname -notlike '*Disabled Users*') }

答案2

将搜索限制为一个的最简单方法OU是使用 SearchScope:

Get-ADUser -Filter  {(Enabled -eq $false)} -SearchScope OneLevel -SearchBase "ou=FirstOU,dc=domain,dc=com"

答案3

最简单的方法是将 放在-SearchBase之前-Filter

Get-ADUser -searchbase "ou=FirstOU,dc=domain,dc=com" -Filter {(Enabled -eq $false)} | ? { ($_.distinguishedname -notlike '*Disabled Users*') }

通过在已经将to传递给 之后运行 来解决必须-SearchBase使用Get-ADUser而不是Where-Object(在 PowerShell 中?别名为)的问题。Where-ObjectWhere-Object-SearchBaseGet-ADUser

相关内容