VB.Net – LDAP Abfrage – alle Mitglieder einer AD-Gruppe als Collection ermitteln

VB.Net – LDAP Abfrage – alle Mitglieder einer AD-Gruppe als Collection ermitteln

Mit dieser Funktion lassen Sie sich alle Mitglieder einer AD-Gruppe als Collection via LDAP ermitteln. Für das Auslesen verwenden wir die Klasse .

So wird es gemacht:

    '============================================
    ' VB.NET Beispiel in Visual Basic .Net
    ' © wilfried.bitz@bridgesolution.de
    '============================================
 
    Public Function GetGroupMembers( _
        ByVal strDomain As String, _
        ByVal strUser As String, _
        ByVal strPW As String, _
        ByVal strGroup As String) As System.Collections.Specialized.StringCollection
 
        Dim GroupMembers As New System.Collections.Specialized.StringCollection()
 
        Try
            Dim DirectoryRoot As New DirectoryServices.DirectoryEntry(strDomain, strUser, strPW)
            Dim DirectorySearch As New DirectoryServices.DirectorySearcher(DirectoryRoot, "(CN=" & strGroup & ")")
 
            Dim DirectorySearchCollection As DirectoryServices.SearchResultCollection = DirectorySearch.FindAll()
            For Each DirectorySearchResult As DirectoryServices.SearchResult In DirectorySearchCollection
                Dim ResultPropertyCollection As DirectoryServices.ResultPropertyCollection = DirectorySearchResult.Properties
                Dim GroupMemberDN As String
                For Each GroupMemberDN In ResultPropertyCollection("member")
                    Dim DirectoryMember As New DirectoryServices.DirectoryEntry("LDAP://" & GroupMemberDN)
                    Dim DirectoryMemberProperties As System.DirectoryServices.PropertyCollection = DirectoryMember.Properties
                    Dim DirectoryItem As Object = Nothing
                    GetGroupMembers_U(DirectoryMemberProperties, DirectoryItem, DirectorySearchResult)
                    If Nothing IsNot DirectoryItem Then
                        GroupMembers.Add(DirectoryItem.ToString())
                    End If
                Next GroupMemberDN
            Next DirectorySearchResult
        Catch ex As Exception
            Trace.Write(ex.Message)
        End Try
 
        Return GroupMembers
 
    End Function
 
    Private Sub GetGroupMembers_U( _
        ByRef DirectoryMemberProperties As System.DirectoryServices.PropertyCollection, _
        ByRef DirectoryItem As Object, _
        ByRef DirectorySearchResult As DirectoryServices.SearchResult)
        On Error Resume Next
        DirectoryItem = DirectoryMemberProperties("sAMAccountName").Value()
    End Sub

Spendierst du mir eine Tasse Kaffee? Ich würd mich riesig freuen. DANKE !! 🙂

Author: admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.