web-dev-qa-db-fra.com

PowerShell - Limitez la recherche à un seul ou

J'ai eu cette cmdlet et j'aimerais limiter les résultats à une seule ou:

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

Maintenant, j'ai essayé d'utiliser

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

Mais si j'utilise -SearchBase Je reçois cette erreur:

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

Ce que je cherche à faire, c'est d'obtenir tous les utilisateurs handicapés à partir d'une unité d'organisation spécifique, mais il y a une ou à l'intérieur de ce premier que je veux exclure: les "utilisateurs handicapés" ou.

comme vous l'avez peut-être deviné, je souhaite trouver des utilisateurs handicapés dans une unité spécifique qui ne figurent pas dans les "utilisateurs handicapés" ou à l'intérieur de cette unité d'utilisateur.

ma structure:

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

Les -SearchBase Le paramètre doit être utilisé avec get-aduseur, pas sur l'objet d'un objet (aliasé par?). Cela devrait fonctionner:

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

Le moyen le plus simple de limiter la recherche à un OU utilise CherchScope:

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

La manière la plus simple serait de mettre le -SearchBase avant le -Filter.

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

Se contente du problème de devoir utiliser -SearchBase avec Get-ADUser, et pas Where-Object (? est aliasé à Where-Object dans PowerShell) en exécutant le Where-Object Après avoir déjà passé votre -SearchBase à Get-ADUser.

3
HopelessN00b