Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 6028 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Mitglieder aus mehreren AD Gruppen mit PowerShell auslesen (2)

Frage von Stefan007 zum Thema Batch & Shell ...

Exchange Server
gelöst Allen Mitgliedern einer Distributionsgruppe das Senden als erlauben (4)

Frage von Cubic83 zum Thema Exchange Server ...

Batch & Shell
gelöst PS alle Mitglieder einer Sicherheitsgruppe bzw. OU (6)

Frage von lupolo zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Windows 10
Windows 10 Fall Creators Update Fehler (14)

Frage von ZeroCool23 zum Thema Windows 10 ...

Router & Routing
gelöst Getrenntes Routing bei VoIP und Daten (12)

Frage von Hobbystern zum Thema Router & Routing ...