Active directory用户多域[英] Active directory users - Mutliple domain

本文是小编为大家收集整理的关于Active directory用户多域的处理方法,想解了Active directory用户多域的问题怎么解决?Active directory用户多域问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

你好,

我有一个应用程序,它从 AD 搜索所有域用户,有人可以告诉我如何在多个域中搜索吗?

推荐答案

太好了.您可以使用以下代码获取多个 Active Directory(您所属的)的列表:

开启 错误 恢复 下一个Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D设置 objUser = GetObject _("LDAP://cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")intPrimaryGroupID = objUser.Get("primaryGroupID")arrMemberOf = objUser.GetEx("memberOf")如果 Err.Number = E_ADS_PROPERTY_NOT_FOUND 那么WScript.Echo "未设置memberOf属性."否则WScript.Echo "成员:"For 每个in arrMemberOfWScript.Echo 组下一个结束 如果

public static DataTable SearchADUsers(string 用户名){//新建数据表使用 (DataTable dtUsers = new DataTable()){dtUsers.Locale = CultureInfo.InvariantCulture;dtUsers.Columns.Add("key");dtUsers.Columns.Add("value");foreach (string domainToBeSearched in ConfigurationDetails.DomainTobeChecked.Split(',')){ValidateADUser(domainToBeSearched, 用户名, dtUsers);}return dtUsers;}}



私有 静态 void ValidateADUser(string domainToBeSearched, string userName, DataTable dtUsers){试试{使用 (DirectoryEntry domain = new DirectoryEntry("LDAP://" + domainToBeSearched)){使用 (DirectorySearcher searcher = new DirectorySearcher()){//设置搜索根目录searcher.SearchRoot = 域;//为搜索用户设置过滤器searcher.Filter = FormFilter("user", userName + "*");searcher.SearchScope = SearchScope.子树;searcher.PageSize = 10;//根据通过的过滤器获取所有注册用户使用 (SearchResultCollection adResult = searcher.FindAll()){DataRow dtrUsers = null;foreach (SearchResult result in adResult){if (dtUsers.Select("key='" + result.Properties["samaccountname"][0].ToString() + "'").Length <= 0){//将用户添加到数据表dtrUsers = dtUsers.NewRow();dtrUsers[0] = result.Properties["samaccountname"][0].ToString();dtrUsers[1] = result.Properties["DisplayName"][0];dtUsers.Rows.Add(dtrUsers);}}}}}}catch(例外){LogUtil.WriteLog(LogLevel.ERROR, ex.ToString());}}



在配置文件中指定域名

<add key="DomainTobeChecked" value="abc.com, lmn.com,xyz.net">

本文地址:https://www.itbaoku.cn/post/1356072.html