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
.
получение всех свойств всех пользователей в домене может быть довольно тяжелым, однако.