【问题标题】:Get the "net user /Domain" result through .net通过.net获取“net user /Domain”结果
【发布时间】: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.DirectoryServicesSystem.DirectoryServices.ActiveDirectorySystem.DirectoryServices.AccountManagement 命名空间。
  • 嘿,谢谢。我终于能够得到数据。我遇到的问题与我对调用 PrincipalContext 构造函数以自行找出域及其控制器的愿望(和误解)有关。提供合适的域后,一切正常。
  • net user /Domain 调用不需要任何域地址作为参数,但无论如何都知道。我更新了问题以反映我也想通过 .net 获得网络调用的功能。
  • 如果您有一个好的解决方案,请考虑回答(下方)您自己的问题。它将帮助将来遇到类似问题的人。
  • 比起使用Domain.GetDomain(),使用GetCurrentDomain()GetComputerDomain()不是更有意义吗?

标签: .net windows active-directory


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    没有

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多