में उपयोगकर्ताओं की सूची मैं उपयोगकर्ताओं की एक सूची और सक्रिय निर्देशिका समूह के भीतर से कुछ गुणों की एक सूची प्राप्त करने का प्रयास कर रहा हूं।विशिष्ट सक्रिय निर्देशिका वितरण समूह
अपडेट:,
Dim adGroup As New DirectoryEntry("LDAP://CN=MyGroup,OU=Groups,OU=Accounts,OU=All,DC=domain,DC=com")
Dim adMembers As Object
Dim objUser As ActiveDirectoryUser
Dim objUserList As New List(Of ActiveDirectoryUser)
Dim directoryEntry As DirectoryEntry
adMembers = adGroup.Invoke("Members", Nothing)
For Each adMember As Object In CType(adMembers, IEnumerable)
directoryEntry = New DirectoryEntry(adMember)
objUser = New ActiveDirectoryUser
objUser.UserId = directoryEntry.Properties.Item("sAMAccountName").Value.ToString()
objUser.Contract = directoryEntry.Properties.Item("ou").Value.ToString()
objUser.LastName = directoryEntry.Properties.Item("sn").Value.ToString()
objUser.FirstName = directoryEntry.Properties.Item("givenName").Value.ToString()
objUser.Email = directoryEntry.Properties.Item("mail").Value.ToString()
objUserList.Add(objUser)
Next
पहले टुकड़ा काम करता है, हालांकि यह काफी अप्रभावी लगता है:
यहां ऐसी दो विधियां मैं वर्तमान में कर रहे हैं। मेरी मेमोरी उपयोग चढ़ाई और चढ़ाई के रूप में चढ़ता है और मुझे this त्रुटि मिल रही थी, हालांकि ऐसा लगता है कि इसे ठीक किया जा सकता है। दूसरी विधि:
Dim results As SearchResultCollection
Dim directoryEntry2 As New DirectoryEntry("LDAP://DC=domain,DC=com")
Dim directorySearcher As New DirectorySearcher(directoryEntry2)
directorySearcher.PageSize = 1000
directorySearcher.Filter = "(&(objectCategory=person)" & _
"(objectClass=user)" & _
"(memberOf=CN=MyGroup,OU=Groups,OU=Accounts,OU=All,DC=domain,DC=com))"
directorySearcher.PropertiesToLoad.Add("ou")
directorySearcher.PropertiesToLoad.Add("sn")
directorySearcher.PropertiesToLoad.Add("givenName")
directorySearcher.PropertiesToLoad.Add("sAMAccountName")
directorySearcher.PropertiesToLoad.Add("mail")
results = directorySearcher.FindAll
परिणाम गणना प्रत्येक आवेदन के निष्पादन से भिन्न होती है जो मुझे अजीब लगता है। मुझे यकीन नहीं है कि क्या यह उपयोगकर्ताओं को वापस पाने का एक विश्वसनीय तरीका है या यदि मुझे अपनी खोज पर कुछ संशोधित करने की आवश्यकता है?
सदस्य संपत्तियों के माध्यम से लूपिंग ने मुझे करीब बंद कर दिया। मुझे अभी भी सदस्य ऑब्जेक्ट से संपत्तियों को खींचने की आवश्यकता होगी (पहला नाम, ई-मेल, आदि)। मुझे लगता है कि मुझे आपके उदाहरण में groupmemberDN को किसी विशिष्ट ऑब्जेक्ट प्रकार में डालना होगा ताकि मैं इससे गुण खींच सकूं? –
अब तक आपकी सहायता के लिए धन्यवाद। मेरे पास दो प्रश्न हैं। सबसे पहले, आपने कहा था कि मैं निर्देशिका खोजकर्ता का उपयोग करके सदस्यों को नहीं प्राप्त कर सकता था, इसलिए आपके अपडेट किए गए उदाहरण में मैं देखता हूं कि मैं कर सकता हूं, इसलिए मैं उम्मीद कर रहा था कि आप वहां जो भी मतलब रखते हैं उस पर विस्तार कर सकते हैं। दूसरा, मैं निर्देशिका खोजकर्ता का उपयोग करके परिणाम प्राप्त करने में सक्षम हूं, लेकिन संग्रह में गिनती हर बार भिन्न होती है जब मैं अपना आवेदन चलाता हूं, जब यह सुसंगत होना चाहिए (वर्तमान में समूह में कोई भी जोड़ा नहीं जा रहा है)। –
@ Ek0nomik: आप ** अपने सभी सदस्यों को खोजने के लिए समूह को गणना नहीं कर सकते हैं, क्योंकि एक समूह ** ** ** एडी में एक कंटेनर नहीं है जिसे आप समझा सकते हैं। इसमें अपने सदस्यों को बाल वस्तुओं के रूप में शामिल नहीं किया गया है। हालांकि आप एक निर्देशिका शाखा का आकलन कर सकते हैं और उन सभी उपयोगकर्ताओं को ढूंढ सकते हैं जो एक विशिष्ट समूह के सदस्य हैं। –