Перечислить ВСЕ свойства объекта AD (даже не заданные)
Я пытаюсь найти несколько свойств, которые нигде не используются в нашей среде AD. Мне все равно, какое имя свойства, если оно не используется.
Я пытался сделать это в C#, главным образом, чтобы я мог исследовать эти классы, пока решал эту проблему, но не могу найти способ перечислить все свойства объекта. DirectoryEntry.Properties
возвращает только набор установленных свойств (насколько я могу судить).
Так можно ли просмотреть все активные (доступные) свойства объекта или вы можете просматривать только те свойства, которые в данный момент имеют какое-либо значение?
РЕДАКТИРОВАТЬ: Текущий код...
using (var directoryObject = new DirectoryEntry("LDAP://CN=GroupCN,OU=groups,DC=domain,DC=com", "uid", "pass", AuthenticationTypes.ReadonlyServer)) {
foreach (var prop in directoryObject.Properties.PropertyNames) {
Console.WriteLine(prop.ToString() + " | " + directoryObject.Properties[prop.ToString()].Value.ToString());
}
}
1 ответ
Редактировать: ОК. Поэтому я пропустил немного обо всех возможных свойствах. Поэтому я займусь этим.
Поскольку объект DirectoryEntry является реализацией IDictionary, на самом деле нет способа узнать, какие свойства можно установить. IDictionary позволит вам добавить столько пользовательских свойств, сколько вы хотели бы к объекту. Документация для коллекции System.DirectoryServices.Property находится здесь: http://msdn.microsoft.com/en-us/library/system.directoryservices.propertycollection(v=vs.100).aspx
Ниже будут перечислены все текущие свойства результатов поиска LDAP. Вы можете изменить это, чтобы найти все свойства, которые в настоящее время используются для объектов, возвращаемых в результате поиска.
foreach (SearchResult item in searchResultCollection)
{
foreach (string propKey in item.Properties.PropertyNames)
{
foreach (object property in item.Properties[propKey])
{
Console.WriteLine("{0} : {1}", propKey, property.ToString());
}
}
}