0
我在Visual Basic 2015中编写了一个程序,我试图编写一个程序来查找用户所属的所有AD组并显示它们一个列表框。之后,我将包括将其导出到.csv文件的选项。我可以通过sAMAccountName或DN进行搜索,因为我定义了两个变量。我被困住了,我得到的只是空的搜索结果。任何帮助将不胜感激。查找vb.net用户的组群成员
Imports System.DirectoryServices
Imports System.DirectoryServices.AccountManagement
Public Class UserMembershipWin
Private Sub queryAD_Click(sender As Object, e As RoutedEventArgs) Handles queryAD.Click
Dim username As String
username = usernameBox.Text
Dim emptybox
emptybox = usernameBox.Text.Length
If emptybox = 0 Then
errormsg.Content = "*Required field"
End If
If emptybox > 0 Then
Dim domain = New PrincipalContext(ContextType.Domain)
Dim user = UserPrincipal.FindByIdentity(domain, username)
Dim userDN
userDN = user.DistinguishedName
Dim ADEntry As New DirectoryEntry("LDAP://DC=domain,DC=com")
Dim Groups As New Collection
Dim mySearcher As DirectorySearcher = New DirectorySearcher(ADEntry)
Dim arrList As New ArrayList()
mySearcher.Filter = "(&(ObjectClass=User)(DN=" & userDN & "))"
mySearcher.PropertiesToLoad.Add("MemberOf")
Dim searchResults As SearchResultCollection = mySearcher.FindAll()
If searchResults.Count = 0 Then
errormsg.Content = "Invalid username"
End If
If searchResults.Count > 0 Then
Dim group As New DirectoryEntry(searchResults(0).Path)
For Each member As Object In group.Properties("MemberOf")
userlistbox.Items.Add(member)
Next
End If
End If
End Sub
End Class
谢谢!简单的错误,现在一切正常。但是,我得到的是群组的DN,而不是CN。有什么方法可以显示组的CN吗? – stewardson
我相信你必须添加你想要检索的属性给搜索者。 –