Active-Directory

PowerShell - 將搜尋限制為僅一個 OU

  • December 17, 2015

我有這個 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

-SearchBase參數必須與 Get-ADUser 一起使用,而不是 Where-Object(由 ? 別名)。這應該有效:

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

將搜尋限制為一個的最簡單方法OU是使用 SearchScope:

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

引用自:https://serverfault.com/questions/601797