繁体   English   中英

使用AccountManagement快速*将多个用户添加到AD组

[英]Add multiple users to an AD group *quickly* using AccountManagement

我需要添加到AD组的用户数量非常多。 我将所有用户SAMAccountNames存储在datagridview中。

下面的代码有效,但是运行缓慢。 就像当我调用g.members.add时直接查询每个用户g.members.add 有没有更有效的添加方式?

For Each r As DataGridViewRow In dgvFinalUsers.Rows
   Dim userName As String = r.Cells(0).Value
   If Not g.Members.Contains(ctx, IdentityType.SamAccountName, userName) Then
      g.Members.Add(ctx, IdentityType.SamAccountName, userName)
      i += 1
      Debug.Print(i)
   End If
Next
g.save

如果在For Each之前将存在的所有用户加载到List对象中,然后查看该用户是否在List中,该怎么办? 这样,您只查询一次AD?

像这样:

var domainMembers = new List<Principal>();
using (var context = new PrincipalContext( ContextType.Domain ))
{
     GroupPrincipal grp = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "Domain Users"); 
     foreach(var user in grp.GetMembers(false))
     {
          if(user)
          {
              domainMembers.add(user);
          }
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM