Sua pergunta parece um trabalho para o PowerShell.
Se você não tiver o PowerShell instalado, capture aqui . O Windows 7 e o Server 2008 R2 já possuem o PowerShell instalado.
Obtenha os Comandos do Quest PowerShell para o Active Directory . Esta extensão fornece comandos úteis para scripts de todos os tipos de operações do AD.
Agora, para sua consulta:
Observação: você pode manter essa consulta muito mais simples, mas vou esticá-la um pouco para entender melhor.
# Get all Users and save it to a variable.
#-SizeLimit 0 returns ALL users, otherwise only 1000 are returned.
# -IncludedProperties proxyaddresses makes sure the proxyaddresses are included
$allusers = Get-QADUser -SizeLimit 0 -IncludedProperties proxyaddresses
# Filter Users without a xyz.org email address and save them to a variable
$filteredusers = $allusers | where {!($_.proxyaddresses -like "*@xyz.org") -and $_.proxyaddresses}
# Sort and output the list
$filteredusers | sort Displayname | format-table Displayname, proxyaddresses -auto
# Other interesting fieldnames you could use with format-table
# GivenName, sn, mail, SamAccountName and many more
#
# To get a list of all possible field names use:
# $filteredusers[0] | format-list *
# This will return all fields of the first user saved in $filteredusers