Finding Active Directory Users with Missing Mail Address

by Nov 12, 2013

LDAP queries are extremely powerful and can help find accounts that are missing information.

This code would return all Active Directory users that actually have a mail address:

$searcher = [ADSISearcher]"(&(sAMAccountType=$(0x30000000))(mail=*))"
$searcher.FindAll() |
  ForEach-Object { $_.GetDirectoryEntry() } |
  Select-Object -Property sAMAccountName, name, mail  

If you want the opposite, negate the query using "!". This would return all Active Directory user accounts that currently have no mail address:

$searcher = [ADSISearcher]"(&(sAMAccountType=$(0x30000000))(!(mail=*)))"
$searcher.FindAll() |
  ForEach-Object { $_.GetDirectoryEntry() } |
  Select-Object -Property sAMAccountName, name, mail  

Twitter This Tip! ReTweet this Tip!