使用c#删除active directory中的用户

本文关键字:用户 directory active 删除 使用 | 更新日期: 2023-09-27 18:25:34

我写了一些代码,但没有工作它抛出异常"发生了操作错误。"代码--->

DirectoryEntry dirEntry = new DirectoryEntry("LDAP path", "admin-username", "admin-password");
dirEntry.Properties["member"].Remove("username-delete");
dirEntry.CommitChanges();
dirEntry.Close();

给我一些摆脱困境的想法。。

使用c#删除active directory中的用户

如果您使用的是.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);
// find the user you want to delete
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
   user.Delete();
}

新的S.DS.AM让在AD中与用户和组一起玩变得非常容易!

当您已经在使用DirectoryEntry时,不需要PrincipalContext或UserPrincipal。

您可以简单地使用DeleteTree()方法:

DirectoryEntry dirEntry = new DirectoryEntry("LDAP path", "admin-username", "admin-password");
dirEntry.DeleteTree();