Последствия безопасности, в дополнение к зависимости Outlook, в прошлом я не мог использовать этот подход. В результате я построил это в виде запроса LDAP . Еще одним плюсом является то, что (в ответ на ваш другой вопрос ) вы сможете извлечь контактную информацию, поскольку эта информация хранится в Active Directory.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Прошло почти пять лет с тех пор, как я просматривал этот код, поэтому я боюсь, что больше не полностью понимаю запрос. Надеюсь, этого достаточно, чтобы начать работу.
DirectoryEntry adFolderObject = new DirectoryEntry();
DirectorySearcher adSearcher = new DirectorySearcher(adFolderObject);
adSearcher.SearchScope = SearchScope.Subtree;
adSearcher.Filter = "(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(!(homeMDB=*))(!(msExchHomeServerName=*)))(&(objectCategory=person)(objectClass=user)(|(homeMDB=*)(msExchHomeServerName=*))) ))";
foreach (SearchResult adObject in adSearcher.FindAll())
{
Console.WriteLine("CN={0}, Path={1}", adObject.Properties["CN"][0], adObject.Path);
}