2012-07-06 66 views
2

我試圖查詢AD來檢索用戶數據。GetDirectoryEntry不返回所有屬性

查詢工作正常,但在枚舉通過GetDirectoryEntry返回的屬性 時,我無法看到在Active Directory資源管理器中看到的所有屬性。

代碼片斷如下:

offEntry = pResult.GetDirectoryEntry(); 
foreach (PropertyValueCollection o in offEntry.Properties) 
{ 
    Debug.Print(o.PropertyName + " = " + o.Value.ToString()); 
} 

我看到像「顯示名」和「SAM帳戶名」等屬性,但不是屬性我真正想要的,例如:「郵編」,「的StreetAddress」。

我已經嘗試過尋找針對這個特定問題的解決方案,但已經走到死衚衕。 我錯過了什麼?

問候 彼得

回答

1

您應該能夠使用一個搜索類這樣的。

DirectorySearcher search = new DirectorySearcher(entry); 
       search.Filter = "(sAMAccountName=" + userAccount + ")"; 
       search.PropertiesToLoad.Add("mail"); 
       SearchResult result = search.FindOne(); 

然後通過線路負載所需的屬性

  search.PropertiesToLoad.Add("mail"); 

然後在SearchResult,你將能夠讀取性能

+0

@peter給這個一展身手,HTTP://的TechNet .microsoft.com/en-us/sysinternals/bb963907如果您有權訪問AD域,則應該可以使用它來查看AD中的所有屬性。我已經看到了我可以訪問的AD,並且我看不到這兩個屬性,所以除非它們在您的AD中,否則您將無法輸出它們。 – Qpirate 2012-07-11 08:03:23