在 Active Directory 中创建用户时出现 C# 错误

2023-12-07

我正在尝试在我的域中的特定 OU 中创建用户。这是我得到的

public static string ldapPath = "LDAP://OU=Domain Users,DC=contoso,DC=com";
public static string CreateUserAccount(string userName, string userPassword)
{
    DirectoryEntry ldapConnection = new DirectoryEntry("contoso.com");
    ldapConnection.Path = ldapPath;

    DirectoryEntry user = ldapConnection.Children.Add("CN=" + userName, "user");

    return user.Guid.ToString();
}

如果我删除 OU=Domain Users,它就会起作用,并且我会收到一个 Guid。但是我的 OU 中需要这些帐户。我从 AD 用户和计算机中的 OU 本身复制了 ldapPath。我知道这是正确的。

我收到的错误是

System.Runtime.InteropServices.COMException (0x80005009): The specified directory object is not bound to a remote resource

   at System.DirectoryServices.DirectoryEntry.RefreshCache()
   at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
   at System.DirectoryServices.DirectoryEntry.get_NativeGuid()
   at System.DirectoryServices.DirectoryEntry.get_Guid()
   at ADINtegrationTest.ActiveDirectory.CreateUserAccount(String userName, String userPassword) in D:\_data\ADINtegrationTest\ADINtegrationTest\ActiveDirectoryUtils.cs:line 21
   at ADINtegrationTest.Form1.Form1_Load(Object sender, EventArgs e) in D:\_data\ADINtegrationTest\ADINtegrationTest\Form1.cs:line 32

我在域的成员 Win2k8 服务器上运行它,以域管理员身份登录。我最终需要在另一个 OU 下的 OU 中创建它,但让我们从这个开始。

谢谢您的帮助! 大卫


如果您使用的是 .NET 3.5 及更高版本,您应该查看System.DirectoryServices.AccountManagement(S.DS.AM) 命名空间。在这里阅读所有相关内容:

  • 管理 .NET Framework 3.5 中的目录安全主体
  • 关于 System.DirectoryServices.AccountManagement 的 MSDN 文档

基本上,您可以定义域上下文并轻松在 AD 中查找用户和/或组:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// create a user principal object
UserPrincipal user = new UserPrincipal(ctx, "User1Acct", "pass@1w0rd01", true);

// assign some properties to the user principal
user.GivenName = "User";
user.Surname = "One";

// force the user to change password at next logon
user.ExpirePasswordNow();

// save the user to the directory
user.Save();

新的 S.DS.AM 使 AD 中的用户和组的使用变得非常容易!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Active Directory 中创建用户时出现 C# 错误 的相关文章

  • 重命名 Azure Active Directory

    目前 我有一个与我在 Azure 平台工作的公司的一组订阅关联的 Active Directory 但是 默认目录 AD 位于域上forenamesurnamehotmailco where forenamesurname是一名不再在这里工
  • 通过 Kerberos 使用 Active Directory 进行身份验证

    我正在构建一个需要不同级别身份验证的 Android 应用程序 并且我想使用 Active Directory 来实现这一点 据我所知 使用 Kerberos 是 Microsoft 建议的方式 对于 Android 我该如何执行此操作 我
  • 如何使用 Spring 和 Active Directory 实现单点登录

    我有一个基于 Spring 的 Web 应用程序 我想在其上实现单点登录解决方案 基本流程是 1 用户登录 Windows 工作站 台式电脑 根据组织的 Active Directory 进行身份验证 2 用户打开浏览器并导航到 Sprin
  • Azure AAD - 受众无效

    我创建了一个使用 azure Active Directory 保护的 Web api 我现在需要对此进行测试并尝试将 fiddler 与授权标头一起使用 我正在尝试使用以下代码生成令牌 Target obj Target cmbTarge
  • 使用 Microsoft.Web.Administration 远程管理 IIS 时身份验证期间出现 COMException

    设想 我需要远程管理与请求更改的服务器位于同一域的 IIS 服务器 创建和销毁应用程序 我有一个应用程序池设置为在授权帐户下运行 我已经使用 IIS 管理器和 Web 池成功运行的帐户测试了远程配置 因此我知道权限是正确的 我通过代码执行此
  • 护照活动目录node.js

    我已经成功地将六个护照策略 facebook twitter linkedin instagram tumblr google youtube 与 oauth1 和 oauth2 令牌交换帐户信息组装到一个独立的身份验证服务器中 该服务器在
  • .NET 3.5 DirectoryServices.AccountManagement 中的不明确名称解析 (anr=*ma*) 等效项

    淘汰旧的 引进新的 呃 我正在搁置旧的 vb net asp net 2 0 asmx 服务 转而使用闪亮的新 c net asp net 4 0 WCF 服务 我的旧服务使用 System DirectoryServices Direct
  • 我可以从 LDAP 更改自己的 Active Directory 密码(无需管理帐户)

    我没有 也不会 拥有管理员帐户 我想从 java 更改 Active Directory 中自己 用户 的密码 我怎样才能做到这一点 使用来自网络的代码 private void changePass throws Exception St
  • 类似于 Active Directory 中的搜索

    我正在使用 C 中的以下代码搜索 LDAP 以轮询用户的活动目录 DirectoryEntry entry new DirectoryEntry ldapPath userName password DirectorySearcher Se
  • Adobe AIR 应用程序能否实现针对 Active Directory 的 SSO 身份验证?

    我对 AIR 应用程序了解不多 但我喜欢目前所看到的内容 所以现在 我想知道这种类型的应用程序在工作中的内联网中是否有意义 在投入时间和精力加强 AIR 开发之前 我想知道 Windows 上的 AIR 应用程序是否可以针对 Active
  • 将启用的计算机添加到 Active Directory OU

    我正在尝试以编程方式将计算机添加到我公司的 Active Directory 我在互联网上搜索了很长时间 但找不到解决方案 My code DirectoryEntry dirEntry new DirectoryEntry LDAP OU
  • (AD) ldap 领域中的组成员资格

    我在 java ee 企业应用程序中使用 JAAS 框架进行身份验证和授权过程 我使用 GlassFish 作为应用程序服务器 我的领域配置如下所示
  • 在 .Net 应用程序中使用 Active Directory Web 服务

    我正在尝试构建一个 Net 应用程序来询问 Active Directory 编辑 我需要使用 Web 服务来执行此操作 因为我将使用需要使用 Web 服务的第三方工作流工具从 Sharepoint 工作流与 AD 进行通信 根据我的研究
  • 找出哪些用户对邮箱具有完全访问权限

    我试图绘制一个图表 显示哪个 Exchange 用户对哪些 Exchange 邮箱拥有哪些权限 并根据权限类型为它们着色 截至目前 我无法找到 Exchange 考虑的所有类型的权限 我可以使用 EWS 找出用户自己授予谁访问邮箱的权限 f
  • VB6 获取 Active Directory 域列表

    使用VB6 是否可以获取活动目录中所有可用域的列表 谢谢 亚历克斯 将 ActiveDS 类型库和 ADO 的引用添加到您的项目中 Sub GetDomains Dim objRootDSE As IADs Dim objBase As I
  • 限制 LDAP 查询中返回的属性

    如何限制通过 System DirectoryServices 在 LDAP 查询中返回的属性 我一直在使用 DirectorySearcher 并将我想要的属性添加到 DirectorySearcher PropertiesToLoad
  • 克服 Active Directory 1000 条记录的限制

    PowerShell 能够提取 1492 条记录的列表 当我使用带有 ldap3 模块的 Python 时 我遇到了 1000 条记录的限制 请帮我更改Python代码以超出限制 PowerShell 输入 get aduser filte
  • 根据用户名获取广告详细信息

    我有一个代码可以从 AD 检索用户的详细信息 例如电子邮件地址 电话号码等 我当前使用的代码是 Set objSysInfo CreateObject ADSystemInfo strUser objSysInfo UserName msg
  • Active Directory:如何确定帐户是否是服务帐户?

    问题 是否可以使用 C LDAP 确定帐户是否是 Active Directory 中的服务帐户 如果是 怎么办 Context 我有一个程序正在检索模式类类型 USER GROUP COMPUTER FOREIGN SECURITY PR
  • AuthenticablePrincipal.RefreshExpiredPassword() 的作用是什么?

    我正在寻找可以使用此功能的示例场景 MSDN 文档不存在 理论上 它似乎将用户密码的年龄重置为零 如果出于某种原因您有一个策略要求在一定时间间隔后更改密码 那么您会使用它 但在某些情况下 也许是某些用户 您想让他们保留密码更长时间

随机推荐