【发布时间】:2015-06-16 11:24:23
【问题描述】:
我想使用 .net 方法获取域中所有用户的列表。当我在cmd 中使用net user /Domain 调用时,我得到了我需要的东西,但是在.net 中我无法获得用户列表或域控制器的地址。我收到“域不存在或无法连接”或“用户名或密码错误”或“当前安全上下文与 AD 域或林无关”错误...
当我调用net user /Domain 时,它会报告将进行搜索的域和域控制器的地址。我可以从 .net 获得的域是不同的。
如何在.net 中获取上述net 命令结果?我对 AD 的工作方式完全陌生。
任何帮助表示赞赏。
更新
经过一些工作,我得到了我想要的数据。我没有提供电话成功所需的所有细节。当我包含域地址时,系统能够找到合适的域控制器并获取我需要的数据。
还有一个问题。
当运行net user /Domain 命令时,我不必提供任何域地址,系统能够自行解决。
如何通过.net自动获取域名地址?
当我调用 Domain.GetDomain( new DirectoryContext( DirectoryContextType.Domain)) 时,我得到 Current security context is not associated with an Active Directory domain or forest 异常。
【问题讨论】:
-
查看
System.DirectoryServices、System.DirectoryServices.ActiveDirectory和System.DirectoryServices.AccountManagement命名空间。 -
嘿,谢谢。我终于能够得到数据。我遇到的问题与我对调用 PrincipalContext 构造函数以自行找出域及其控制器的愿望(和误解)有关。提供合适的域后,一切正常。
-
net user /Domain 调用不需要任何域地址作为参数,但无论如何都知道。我更新了问题以反映我也想通过 .net 获得网络调用的功能。
-
如果您有一个好的解决方案,请考虑回答(下方)您自己的问题。它将帮助将来遇到类似问题的人。
-
比起使用
Domain.GetDomain(),使用GetCurrentDomain()或GetComputerDomain()不是更有意义吗?
标签: .net windows active-directory