Skip to content

Instantly share code, notes, and snippets.

@jonlabelle
Last active April 29, 2026 08:25
Show Gist options
  • Select an option

  • Save jonlabelle/0f8ec20c2474084325a89bc5362008a7 to your computer and use it in GitHub Desktop.

Select an option

Save jonlabelle/0f8ec20c2474084325a89bc5362008a7 to your computer and use it in GitHub Desktop.
LDAP Search Filter Cheatsheet
title LDAP Search Filter Cheatsheet
author Jon LaBelle
date January 1, 2021
source https://jonlabelle.com/snippets/view/markdown/ldap-search-filter-cheatsheet
notoc true

LDAP Search Filter Cheatsheet

Filter operators

Comparison operators

The following comparison operators can be used in a filter:

Operator Description
= Equal
>= More or equal
<= Less or equal
~= Approximately equal

For example, the following filter returns all objects with cn (common name) attribute value Jon:

(cn=Jon)

Combination operators

Filters can be combined using boolean operators when there are multiple search conditions

Operator Description
& AND --- all conditions must be met
` `
! NOT --- the condition must not be met

For example, to select objects with cn equal to Jon and sn (surname/last name) equal to Brian:

(&(cn=Jon)(sn=Brian))

Filter basics

To match a single attribute

(sAMAccountName=<SomeAccountName>)

To match two attributes (and)

(&(objectClass=<person>)(objectClass=<user>))

To match two attributes (or)

(|(objectClass=<person>)(objectClass=<user>))

To match three attributes (and)

(&(objectClass=<user>)(objectClass=<top>)(objectClass=<person>))

To match three attributes (or)

(!(objectClass=<user>)(objectClass=<top>)(objectClass=<person>))

To perform a wildcard search

(&(objectClass=<user>)(cn=<*Marketing*>))

Sample filters

Users in group

To retrieve user account names (sAMAccountName) that are a member of a particular group (SomeGroupName):

(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=<SomeGroupName>,ou=<users>,dc=<company>,dc=<com>))

Users in group (include nested)

To retrieve user account names (sAMAccountName), and nested user account names that are a member of a particular group (SomeGroupName):

(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=<SomeGroupName>,ou=users,dc=company,dc=com))

Users in multiple groups

To retrieve user account names (sAMAccountName) that are a member of any, or all the 4 groups (fire, wind, water, heart):

(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=<fire>,ou=<users>,dc=<company>,dc=<com>)(memberOf=cn=<wind>,ou=<users>,dc=<company>,dc=<com>)(memberOf=cn=<water>,ou=<users>,dc=<company>,dc=<com>)(memberOf=cn=<heart>,ou=<users>,dc=<company>,dc=<com>)))

Users that must change their password at next logon

To search Active Directory for users that must change their password at next logon:

(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!userAccountControl:1.2.840.113556.1.4.803:=2)

Users starting with a particular name

To search user objects that start with Common Name Brian (cn=Brian*):

(&(objectClass=user)(cn=<Brian*>))

Users by job title

To find all users with a job title starting with Manager (Title=Manager*):

(&(objectCategory=person)(objectClass=user)(Title=<Manager*>))

Active Directory related filters

Search filters supported only by Microsoft Active Directory.

Domain and Enterprise Admins

To search for administrators in groups Domain Admins, Enterprise Admins:

(objectClass=user)(objectCategory=Person)(adminCount=1)

All users except blocked

To search all users except for blocked ones:

(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)

Disabled user accounts

To list only disabled user accounts:

(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=16)

Users with password never expires enabled

(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)

Users with empty email

(objectCategory=person)(!mail=*)

Users in department

To search users in a particular department:

(&(objectCategory=person)(objectClass=user)(department=<Sales>))

References

@Juris-ru
Copy link
Copy Markdown

Juris-ru commented Aug 7, 2025

Hi. Need to be corrected: https://gist.github.com/jonlabelle/0f8ec20c2474084325a89bc5362008a7#to-match-three-attributes-or
Perhaps you should write "|" instead of "!"

@jonlabelle
Copy link
Copy Markdown
Author

Hi. Need to be corrected: https://gist.github.com/jonlabelle/0f8ec20c2474084325a89bc5362008a7#to-match-three-attributes-or Perhaps you should write "|" instead of "!"

Good catch! Thanks @Juris-ru.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment