Skip to content

Filtres et opérateurs Get-ADUser

Opérateurs disponibles

Type Opérateur Exemple
Égal -eq {Department -eq "IT"}
Pas égal -ne {Status -ne "Inactive"}
Plus petit que -lt {LastLogonDate -lt (Get-Date).AddDays(-90)}
Plus grand que -gt {LogonCount -gt 0}
Wildcard -like {Name -like "John*"}
Pas wildcard -notlike {mail -notlike "*"}
Regexp -match {mail -match "[0-9]+"}
Pas regexp -notmatch {Name -notmatch "[0-9]"}

Exemples pratiques

# Utilisateurs d'un département dans une OU spécifique
Get-ADUser -Filter {Department -eq "IT"} `
    -SearchBase "OU=Users,DC=domain,DC=com" `
    -Properties Title, Manager

# Comptes désactivés
Get-ADUser -Filter {Enabled -eq $false}

# Comptes bloqués
Get-ADUser -Filter {LockedOut -eq $true}

# Utilisateurs inactifs depuis 90 jours
Get-ADUser -Filter {LastLogonDate -lt (Get-Date).AddDays(-90)} `
    -Properties LastLogonDate

# Utilisateurs sans adresse email
Get-ADUser -Filter {mail -notlike "*"} -Properties mail

# Comptes dont le mot de passe n'expire jamais
Get-ADUser -Filter {PasswordNeverExpires -eq $true}

# Combiner plusieurs filtres avec -and / -or
Get-ADUser -Filter {Department -eq "IT" -and Enabled -eq $true}

Paramètres de recherche

Paramètre Description
-SearchBase OU de départ pour la recherche
-SearchScope OneLevel Cherche uniquement dans l'OU directe, pas les sous-OU
-SearchScope Subtree Cherche dans l'OU et toutes ses sous-OU (défaut)
-Properties * Retourner tous les attributs (plus lent)
-ResultSetSize $null Retourner tous les résultats sans limite

Bonnes pratiques

  • Utiliser -Filter plutôt que Get-ADUser | Where-Object : le filtre s'exécute côté serveur AD, bien plus performant
  • Utiliser -SearchScope OneLevel pour éviter les recherches récursives inutiles
  • Toujours spécifier -SearchBase pour limiter le scope de recherche
  • Spécifier explicitement les -Properties nécessaires plutôt que -Properties * pour de meilleures performances