从Active Directory获取所有ou
本文关键字:ou 获取 Active Directory | 更新日期: 2023-09-27 18:15:45
是否有直接的方法来获取活动目录下的所有ou ?我已经尝试了以下代码,我在
处得到Com异常(无效操作)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;
}
请帮我解决这个问题。
Thanks in advance
使用(objectClass=organizationalUnit)代替(objectClass=organization - unit)