我正在瀏覽AD環境中的所有用戶,並閱讀他們的電子郵件地址,以便在另一個系統中更新它。我正在使用System.DirectoryServices
庫。下面的簡單例子。我發現的是,mail
屬性並不總是正確的,即使用戶在Exchange中有一個有效的郵箱設置和功能,通常也會丟失。所以,問題是,給定一個DirectoryEntry
,除了閱讀mail
屬性之外,是否有任何方法可以列出來自Exchange的用戶的主要電子郵件地址(以及理想的任何別名)?我見過一些examples that use the proxyAddresses
attribute,但這些似乎也不可靠。我正在尋找直接來自Exchange的解決方案。沒有關於它的事情。這是他們的電子郵件地址。從給定的電子郵件地址獲取電子郵件地址DirectoryEntry
DirectorySearcher search = new DirectorySearcher("(&(mail=*))");
search.PageSize = 1000;
search.PropertiesToLoad.Add("mail");
foreach(SearchResult result in search.FindAll())
{
DirectoryEntry entry = result.GetDirectoryEntry();
Console.WriteLine(entry.Properties["mail"].Value);
}
你對'PrincipalContext'熟悉嗎?你也可以通過這個域名的電子郵件地址獲得這些信息。也可以通過代碼改變這行'entry.Properties [「mail」]。Value'到以下'entry.Properties [「mail」]。Value.ToString();' – MethodMan 2014-11-04 20:32:28
@DJKRAZE只讀取'mail'屬性。 – 2014-11-04 20:34:51
您是否曾嘗試使用PrincipalContext獲取所有用戶的列表,或者至少嘗試使用您的用戶名,這將是您在網絡中使用的SamAccount名稱..您將看到它將返回電子郵件地址外觀提供有關如何使用PrincipalContext獲取所有AD用戶的示例 – MethodMan 2014-11-04 20:37:54