通过 .net 获取"net user /Domain"结果



我想使用 .net 方法获取域中所有用户的列表。当我在cmd中使用net user /Domain调用时,我得到了我需要的东西,但在 .net 中我无法获取用户列表或域控制器的地址。我收到"域不存在或无法连接"或"用户名或密码错误"或"当前安全上下文与 AD 域或林无关"错误...

当我调用net user /Domain时,它会报告将要执行搜索的域和域控制器的地址。不过,我可以从.net获得的域是不同的。

如何在.net中获取上述net命令结果?我对AD的工作原理完全陌生。任何帮助表示赞赏。

更新

经过一些工作,我能够获得我想要的数据。我没有提供呼叫成功所需的所有详细信息。当我包含域地址时,系统能够找到合适的域控制器并获取我需要的数据。

不过,有一个问题仍然存在。

运行net user /Domain命令时,我不必提供任何域地址,系统能够自行解决。

如何通过.net自动获取域名地址?

当我调用Domain.GetDomain( new DirectoryContext( DirectoryContextType.Domain))时,我得到当前安全上下文未与活动目录域或林异常相关联

我在获取想要的数据的途中犯了几个错误,解决方案不是技术性的,而是提醒调用成功所需的所有部分。

  1. 在构建与Active Directory服务交互所需的PrincipalContext时,不要忘记包含域中允许的正确域地址以及用户的登录名和密码。

  2. 域控制器地址(至少在我的情况下)与提供连接的网络适配器的 DNS 服务器地址相同。无需提供域控制器地址,只需提供域地址(或基本 DNS 服务器地址后缀),系统将找到域控制器。

我剩下的问题是如何绕过向PrincipalContext构造函数调用提供用户名和密码 - 毕竟net user /Domain调用不需要它。但那是另一回事了。

但你可以在PowerShell中使用以下命令Get-ADUser "username" -Server "domaincontroller.localdomain"

最新更新