Hallo,
ich habe eine Function geschrieben, welche mir aktuell den Anzeigenamen zurückgibt. Ich brauche die Funktion aber jetzt so, dass mir der SAM ausgegeben wird. Ich weiß das man dem DirectoryEntry, oder DirectoryResult dies sagen muss. Wenn ich mir aber den SAM jetzt ausgeben lassen möchte (testweise mit einer MSGBox), dann bekomme ich einen Objektinstanz Fehler. Ich mache bestimmt nur einen kleinen Fehler, an sich funktioniert die Funktion aber so:
Vielen Dank vorab für die Hilfe
Grüße
Peter
ich habe eine Function geschrieben, welche mir aktuell den Anzeigenamen zurückgibt. Ich brauche die Funktion aber jetzt so, dass mir der SAM ausgegeben wird. Ich weiß das man dem DirectoryEntry, oder DirectoryResult dies sagen muss. Wenn ich mir aber den SAM jetzt ausgeben lassen möchte (testweise mit einer MSGBox), dann bekomme ich einen Objektinstanz Fehler. Ich mache bestimmt nur einen kleinen Fehler, an sich funktioniert die Funktion aber so:
VB.NET-Quellcode
- Public Function Test(Gruppe As String)
- Dim F As New Funktionen
- Dim RootDSE As New DirectoryEntry("LDAP://RootDSE")
- Dim DomainDN As String = RootDSE.Properties("DefaultNamingContext").Value
- Dim strPath = "LDAP://" & DomainDN
- Dim UsersInGroup As New Collection()
- Dim de As New DirectoryEntry(strPath)
- de.Username = "AD\" & GUI.Benutzername
- If GUI.Passwort = "" Or GUI.Passwort = " " Or GUI.Passwort = "(none)" Then
- MsgBox("Fehler beim erkennen des Passworts!")
- Else
- de.Password = F.Decrypt(GUI.Passwort, GUI.PrivateKey)
- Dim MemberSearcher As New DirectorySearcher
- With MemberSearcher
- .SearchRoot = de
- .Filter = "(&(ObjectClass=Group)(sAMAccountName=" & Gruppe & "))"
- .PropertiesToLoad.Add("Member")
- .PropertiesToLoad.Add("SamAccountName")
- End With
- Dim mySearchResults As SearchResult = MemberSearcher.FindOne()
- Dim thisuserSAN As String
- For Each User In mySearchResults.Properties("Member")
- thisuserSAN = de.Properties("SamAccountName").Value.ToString.ToLower
- MsgBox(thisuserSAN)
- Dim mystr2 As String = User.ToString()
- Dim cut_at2 As String = "CN="
- Dim x2 As Integer = InStr(mystr2, cut_at2)
- Dim string_after2 As String = mystr2.Substring(x2 + cut_at2.Length - 1)
- Dim s2 As String = string_after2
- Dim first2 As String
- Dim Index2 As String
- Try
- Index2 = s2.IndexOf("OU=")
- first2 = s2.Substring(0, Index2 - 1)
- Catch ex As Exception
- Index2 = s2.IndexOf("CN=")
- first2 = s2.Substring(0, Index2 - 1)
- End Try
- If first2.Contains("\") Then
- first2 = first2.Replace("\", "")
- End If
- UsersInGroup.Add(first2)
- Next
- End If
- Return UsersInGroup
- End Function
Vielen Dank vorab für die Hilfe
Grüße
Peter