![](/img/trans.png)
[英]Want to look up an AD Group's SID without using samAccountName or DirectoryServices.AccountManagement
[英]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.