Active Directory: PropertiesToLoad получить все свойства

Я пытаюсь получить список всех свойств из объекта в Active Directory.

что у меня есть сейчас это:

List<User> users = new List<User>();
try
{
    DirectoryEntry root = new DirectoryEntry("LDAP://RootDSE");
    root = new DirectoryEntry("LDAP://" + root.Properties["defaultNamingContext"][0]);
    DirectorySearcher search = new DirectorySearcher(root);
    search.Filter = "(&(objectClass=user)(objectCategory=person))";

    search.PropertiesToLoad.Add("samaccountname");
    search.PropertiesToLoad.Add("displayname");
    search.PropertiesToLoad.Add("mail");
    search.PropertiesToLoad.Add("telephoneNumber");
    search.PropertiesToLoad.Add("department");
    search.PropertiesToLoad.Add("title");

    SearchResultCollection results = search.FindAll();
    if (results != null)
    {
        foreach (SearchResult result in results)
        {
            foreach (DictionaryEntry property in result.Properties)
            {
                Debug.Write(property.Key + ": ");
                foreach (var val in (property.Value as ResultPropertyValueCollection)) { 
                    Debug.Write(val +"; ");
                }
                Debug.WriteLine("");
            }
        }
    }
}
catch (Exception ex)
{

}

но он получает только свойства, которые я добавил С PropertiesToLoad. Можно ли получить все свойства динамически?

1 ответов


Если вы ничего не указываете в PropertiesToLoad, вы должны получить все свойства. Просто удалите строки с search.PropertiesToLoad.Add.

получение всех свойств всех пользователей в домене может быть довольно тяжелым, однако.