Hallo,
ich habe eine Funktion implementiert (wie hier die Funktion GetADGroupUsers(string groupName)), die die Benutzer einer Gruppe ausliest.
Mein Problem ist, dass ich den accountnamen jedes Users der Gruppe brauche, mit der Funktion jedoch der komplette Name ausgelesen wird.
kann mir da jmnd helfen?
Hier meine Funktionen zum Auslesen von Gruppen eines Users und die, die die User einer Gruppe auslesen soll.
Public Function GruppenEinesBenutzer(ByVal benutzer_id As String) As Collections.Generic.List(Of String)
Dim searcher As DirectorySearcher = Nothing
Dim colEntry As New Collections.Generic.List(Of String)
searcher = New DirectorySearcher(New DirectoryEntry("LDAP://xxx.com"))
searcher.Filter = String.Concat("(&(objectClass=User) (sAMAccountName=", benutzer_id, "))")
searcher.PropertiesToLoad.Add("MemberOf")
Dim result As SearchResult = searcher.FindOne
Try
For i As Integer = 0 To result.Properties("MemberOf").Count - 1
Dim sProp As String = result.Properties("MemberOf")(i)
colEntry.Add(sProp.Substring(3, sProp.IndexOf(",") - 3))
Next
Catch ex As Exception
End Try
GruppenEinesBenutzer = colEntry
End Function
Public Function UserInGruppe(ByVal grpname As String) As Collections.Generic.List(Of String)
UserInGruppe = New Collections.Generic.List(Of String)
Dim searcher As DirectorySearcher = Nothing
Dim colEntry As New Collections.Generic.List(Of String)
searcher = New DirectorySearcher(New DirectoryEntry("LDAP://xxx.com"))
searcher.Filter = String.Concat("(&(objectClass=group)(|(cn=" & grpname & ")(dn=" & grpname & ")))")
searcher.PropertiesToLoad.Add("memberof")
Dim result As SearchResult = searcher.FindOne
For Each tmp As String In result.GetDirectoryEntry().Properties("member").Value
UserInGruppe.Add(tmp)
Next
End Function
Vielen Dank im Voraus