我在尝试克服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-”开头的所有组中删除用户,这不会让事情变得非常糟糕?
答案 0 :(得分:1)
我解决了!以下是我为我的问题管理其他人的方式:
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:context = "http://www.springframework.org/schema/context"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package = "com.tutorialspoint" />
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "prefix" value = "/WEB-INF/jsp/" />
<property name = "suffix" value = ".jsp" />
</bean>
</beans>
答案 1 :(得分:0)
您说您知道如何获取MemberOf信息。您是否会遍历该数组以查找以&#34; Google&#34;。
开头的群组但请记住,MemberOf数组是distinguishedNames数组,因此组名前缀为&#34; CN =&#34;。所以你真的需要做这样的事情:
For Each groupDn as String in memberOf
If groupDn.StartsWith("CN=Google"))
//remove user from this group
End If
Next
我暂时没有使用过VB,所以可能无法正常工作。但这就是想法。