Перечислить ВСЕ свойства объекта 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());
        }
    }
}
Другие вопросы по тегам