VB.NET Von allen Mitgliedern einer Gruppe sAMAccountName ausgeben
Ich möchte eigentlich alle Mitglieder einer Gruppe auslesen. Das ist an sich auch kein Problem, ich hatte dafür auch schon eine ganz gute Lösung, allerdings konnte ich mir über den Zugriff auf das Group-Attribut "Member" nicht den "sAMAccountName" ausgeben lassen. Der wäre für mich aber ausschlaggebend damit ich mit dem Ergebnis weiterarbeiten kann.
Dann habe ich mir überlegt alle User "anzufassen" und festzustellen ob sich in dem User-Attribut "MemberOf" die Gruppe befindet die ich in textBox18 eingegeben habe.
Mein Code schaut folgendermaßen aus, aber er funktioniert komischerweise nicht mit allen Gruppen und dauert natürlich ein paar sekunden länger. Hat jemand einen Verbesserungsvorschlag? Oder gar eine ganz neue Idee?
LG Peacer
Dann habe ich mir überlegt alle User "anzufassen" und festzustellen ob sich in dem User-Attribut "MemberOf" die Gruppe befindet die ich in textBox18 eingegeben habe.
Mein Code schaut folgendermaßen aus, aber er funktioniert komischerweise nicht mit allen Gruppen und dauert natürlich ein paar sekunden länger. Hat jemand einen Verbesserungsvorschlag? Oder gar eine ganz neue Idee?
LG Peacer
Public Function GetGroupMember(ByVal domain As String, ByVal username As String, ByVal password As String, Optional ByRef exeption As Exception = Nothing) As Collections.Generic.List(Of String)
Dim ADEntry As New DirectoryServices.DirectoryEntry("LDAP://" & domain, username, password)
Dim objSearch As New System.DirectoryServices.DirectorySearcher(ADEntry)
Dim oResults As DirectoryServices.SearchResultCollection
Dim oResult As DirectoryServices.SearchResult
Dim colEntry As New Collections.Generic.List(Of String)
Try
objSearch.Filter = "(&(objectCategory=person)(objectClass=user))"
oResults = objSearch.FindAll
objsearch.PropertiesToLoad.Add("MemberOf")
For Each oResult In oResults
For i As Integer = 0 To oResult.Properties("MemberOf").Count - 1
Dim sProp As String = oResult.Properties("MemberOf")(i)
Dim s2Prop As String = sProp.Substring(3, sProp.IndexOf(",") - 3)
If s2Prop.ToLower = textBox18.Text.ToLower Then
Dim UsrsAM As String = oResult.GetDirectoryEntry.Properties("sAMAccountName").Value
Dim UsrCN As String = oResult.GetDirectoryEntry.Properties("cn").Value
Dim UsrCNsAM As String = UsrsAM & ", " & UsrCN
colEntry.Add(UsrCNsAM)
'Else
'colEntry.Add("leer " & s2Prop)
End If
Next
'Console.WriteLine(oResult.GetDirectoryEntry.Properties("sAMAccountName").Value)
Next
Catch ex As Exception
exeption = ex
Finally
objsearch.Dispose()
End Try
Return colEntry
End Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162959
Url: https://administrator.de/contentid/162959
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
1 Kommentar