Есть ли какой-либо прямой метод получения всех подразделений, входящих в Active Directory? Я попытался следующий код, и я получаю Com Exception (недопустимая операция) вПолучение всех подразделений из Active Directory
ouSearch.FindAll()
Мой код показан ниже.
public static List<string> GetAllOus(string ldapServer, string ldapUserName, string ldapPassWord)
{
List<string> orgUnits = new List<string>();
string defaultNamingContext;
DirectoryEntry rootDSE = new DirectoryEntry(ldapServer + "/dc=server-dc,dc=com", ldapUserName, ldapPassWord, AuthenticationTypes.Anonymous);
//defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString();
//DirectoryEntry defaultentry = new DirectoryEntry("LDAP://" + defaultNamingContext);
DirectorySearcher ouSearch = new DirectorySearcher(rootDSE,
"(objectClass=organizational-Unit)",
null, SearchScope.Subtree);
foreach (SearchResult resEnt in ouSearch.FindAll())
{
string OUName = resEnt.GetDirectoryEntry().Name;
orgUnits.Add(OUName);
}
return orgUnits;
}
Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо
Какое значение имеет ваш 'ldapServer' есть ?? –
@marc_s: его значение имеет значение, например LDAP: //192.168.2.5 (сервер AD) – MAC
ОК, просто убедитесь, что часть 'LDAP: //' ** заглавная ** (не используйте 'ldap : // 'или' Ldap: // 'или что-то в этом роде ..) –