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

Npv*_*23g 6 powershell active-directory user-management organizational-unit

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

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

现在我尝试使用

-searchbase "ou=FirstOU,dc=domain,dc=com"
Run Code Online (Sandbox Code Playgroud)

但是如果我使用-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
Run Code Online (Sandbox Code Playgroud)

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

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

我的结构:

Forest
   FirstOU
      Users,groups,etc...
      Disabled Users OU
Run Code Online (Sandbox Code Playgroud)

小智 11

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

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


Tim*_*ill 10

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

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