Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB.NET Von allen Mitgliedern einer Gruppe sAMAccountName ausgeben

Frage Entwicklung Visual Studio

Mitglied: Peacer

Peacer (Level 1) - Jetzt verbinden

18.03.2011 um 16:56 Uhr, 5882 Aufrufe, 1 Kommentar

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



01.
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) 
02.
	 
03.
	Dim ADEntry As New DirectoryServices.DirectoryEntry("LDAP://" & domain, username, password) 
04.
    	Dim objSearch As New System.DirectoryServices.DirectorySearcher(ADEntry) 
05.
 
06.
    	Dim oResults As DirectoryServices.SearchResultCollection 
07.
    	Dim oResult As DirectoryServices.SearchResult 
08.
		 
09.
		Dim colEntry As New Collections.Generic.List(Of String) 
10.
		Try 
11.
    		objSearch.Filter = "(&(objectCategory=person)(objectClass=user))" 
12.
   			oResults = objSearch.FindAll 
13.
			objsearch.PropertiesToLoad.Add("MemberOf") 
14.
   		 
15.
   			For Each oResult In oResults 
16.
   				For i As Integer = 0 To oResult.Properties("MemberOf").Count - 1 
17.
   					Dim sProp As String = oResult.Properties("MemberOf")(i) 
18.
   					Dim s2Prop As String = sProp.Substring(3, sProp.IndexOf(",") - 3) 
19.
   					If s2Prop.ToLower = textBox18.Text.ToLower Then 
20.
   						Dim UsrsAM As String = oResult.GetDirectoryEntry.Properties("sAMAccountName").Value 
21.
   						Dim UsrCN As String = oResult.GetDirectoryEntry.Properties("cn").Value 
22.
   						Dim UsrCNsAM As String = UsrsAM & ", " & UsrCN 
23.
   						colEntry.Add(UsrCNsAM) 
24.
   						'Else 
25.
   						'colEntry.Add("leer " & s2Prop) 
26.
   					End If 
27.
   				Next 
28.
        		'Console.WriteLine(oResult.GetDirectoryEntry.Properties("sAMAccountName").Value) 
29.
    		Next 
30.
 
31.
		Catch ex As Exception 
32.
			exeption = ex 
33.
		 
34.
		Finally 
35.
			objsearch.Dispose() 
36.
		End Try 
37.
		Return colEntry 
38.
		 
39.
	End Function 
40.
 
Mitglied: Peacer
21.03.2011 um 09:59 Uhr
Also ich kann mir die User mit folgender Function folgendermaßen ausgeben lassen.

Function:

01.
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) 
02.
Dim searcher As DirectorySearcher = Nothing 
03.
		Dim colEntry As New Collections.Generic.List(Of String) 
04.
		 
05.
		Try 
06.
			searcher = New DirectorySearcher(New DirectoryEntry("LDAP://" & domain, username, password)) 
07.
			searcher.Filter = String.Concat("(&(objectClass=Group) (samAccountName=", textBox18.Text, "))") 
08.
			searcher.PropertiesToLoad.Add("Member") 
09.
			 
10.
			Dim result As SearchResult = searcher.FindOne 
11.
			For i As Integer = 0 To result.Properties("Member").Count - 1 
12.
				Dim sProp As String = result.Properties("Member")(i) 
13.
				colEntry.Add(sProp) 
14.
			Next 
15.
			 
16.
		Catch ex As Exception 
17.
			exeption = ex 
18.
			 
19.
		Finally 
20.
			searcher.Dispose() 
21.
		End Try 
22.
		Return colEntry 
23.
End Function
Output:

01.
CN=Nachname\, Vorname,OU=User,OU=abc,DC=domain,DC=com
Kann ich mit diesen Daten pro User eine LDAP Abfrage starten womit ich dann den "sAMAccountName" ausgeben kann? Ist das sinnvoll?

Zur Info: eine Group hat bei uns bis zu 1200 Mitglieder...

Danke Peacer
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Visual Studio
gelöst VB.Net - Problem mit Umleitung der Standard-Ausgabe (4)

Frage von emeriks zum Thema Visual Studio ...

Visual Studio
gelöst Vb.net Pfadangabe mit Wildcards wie Stern Regex Pattern (2)

Frage von Pilger83 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (15)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...