You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Active Directory获取用户时遇“无法联系服务器”错误求助

解决AD用户获取失败的建议

针对你遇到的PrincipalServerDownException和LdapException错误,结合你的代码和可用的正常逻辑,给出以下具体修复方案:

1. 修正PrincipalContext构造参数

PrincipalContext的第二个参数(域名/服务器地址)不需要添加LDAP://前缀,该类内部会自动处理LDAP协议,手动添加前缀会导致服务器地址解析错误。

// 错误写法
// PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "LDAP://mydomain.COM", filter);

// 正确写法
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.COM", filter);

2. 添加AD认证凭据

你正常运行的DirectorySearcher明确传入了用户名和密码进行安全认证,但当前PrincipalContext未指定认证信息,这很可能是连接失败的核心原因。使用重载构造函数添加凭据:

// 替换user和password为实际的AD有权限账号
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.COM", filter, user, password);

3. 修复CSV输出逻辑

当前代码中allUsers.ToString()无法生成有效的用户列表内容,会输出类型名称而非实际用户数据。改用string.Join拼接用户名称:

List<string> allUsers = new List<string>();

// ... 搜索逻辑保持不变 ...

// 生成可写入CSV的内容
string userListContent = string.Join(Environment.NewLine, allUsers);
if(mode == 1)
    File.WriteAllText(output, userListContent);
else
    File.AppendAllText(output, userListContent);

4. 额外排查项

  • 确认运行DLL的进程拥有访问目标AD服务器的权限,且网络连通性正常(AD默认使用389/TCP端口,可通过telnet测试)。
  • 若域名解析存在问题,可直接指定AD服务器的具体主机名(如"dc01.mydomain.COM")替代域名。

内容的提问来源于stack exchange,提问作者Raphael Frei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:41:11