Lors d’audits Active Directory, la recherche d’objets via PowerShell est une opération critique.
Les cmdlets telles que Get-ADUser, Get-ADComputer ou Get-ADObject proposent le paramètre -Filter, souvent suffisant pour des requêtes simples. Cependant, dès que les critères se complexifient, ce mode de filtrage montre rapidement ses limites.
Dans plusieurs scripts d’audit, certaines recherches retournaient un volume excessif d’objets, tandis que d’autres ne renvoyaient aucun résultat sans erreur explicite. Ces comportements étaient dus à des filtres trop permissifs, mal interprétés, ou difficiles à maintenir lorsque plusieurs conditions entraient en jeu.
L’utilisation des filtres LDAP via le paramètre -LDAPFilter s’est alors révélée être une solution plus robuste. Les filtres LDAP sont interprétés nativement par Active Directory, ce qui garantit une meilleure précision et des performances supérieures, notamment dans des environnements de grande taille.
Exemples concrets
Get-ADUser -LDAPFilter "(&(objectClass=user)(employeeID=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
Cela retourne uniquement les comptes utilisateurs activés disposant d’un EmployeeID.
Get-ADUser -LDAPFilter "(&(objectClass=user)(servicePrincipalName=*))"
Très efficace pour détecter les comptes exposés à des risques de type Kerberoasting.

0 commentaires