【发布时间】:2018-01-31 11:38:23
【问题描述】:
我在尝试解决 VB.net 中的问题时遇到了麻烦。我想要实现的是从组名称以“Google”开头的所有组中删除一个特定的 AD 用户...
如果我知道组的全名,这很简单,我可以执行以下操作:
Dim ctx As DirectoryServices.AccountManagement.PrincipalContext = New DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Domain, "Company.co.uk")
Dim googleremove As DirectoryServices.AccountManagement.GroupPrincipal = DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(ctx, "Google-Group1")
googleremove.Members.Remove(ctx, DirectoryServices.AccountManagement.IdentityType.SamAccountName, "UserID")
googleremove.Save()
但问题是我的应用程序并不总是知道需要从哪个特定组中删除用户。有 28 个不同的组,每个组都有数千名用户,组名以“Google-”开头。有没有一种有效的方法可以将用户从组名以“Google-”开头的所有组中删除,这样不会严重减慢速度?
【问题讨论】:
-
如果您只获取用户所属的组,然后将他从所有以“Google”开头的组中删除,该怎么办。根据组成员的数量,这可能会快很多......?
-
@MatSnow 是的,这很合适。我可以使用 System.DirectoryServices 获取 MemberOf 信息,但我不知道如何获得更多信息......
-
我不知道该怎么做 -> 我不明白...您已经发布了从组中删除用户的代码。有什么问题?
-
@MatSnow 我的问题是我可以孤立地做每件事,但不具备将这两个过程结合起来的知识。
标签: vb.net active-directory directoryservices account-management