0
Active Directoryから連絡先を取得する必要のあるアプリケーションがあります。ここでActiveDirectory(.NET)の連絡先の検索
は、私が使用しているコードです:
Public Function GetADContacts(ByVal LastNameStarts As String) As DirectoryServices.SearchResultCollection
Dim rootDSE As New DirectoryServices.DirectoryEntry("LDAP://RootDSE")
Dim defaultNamingContext As String = rootDSE.Properties("defaultNamingContext").Value.ToString()
Dim objSearch As New DirectoryServices.DirectorySearcher()
Dim cllQueryResults As DirectoryServices.SearchResultCollection
With objSearch
.SearchRoot = New DirectoryServices.DirectoryEntry("LDAP://" + defaultNamingContext)
.Filter = "(&(objectclass=contact)(mailNickname=*)(cn=*)(sn=" + LastNameStarts + "*)(givenname=*))"
.SearchScope = DirectoryServices.SearchScope.Subtree
.PropertiesToLoad.AddRange(New String() {"cn", "sn", "givenname", "mailNickname"})
.Sort.PropertyName = "sn"
.Sort.Direction = DirectoryServices.SortDirection.Ascending
cllQueryResults = .FindAll()
End With
Return cllQueryResults
End Function
私は連絡先がSN、CN、givennameのを持っており、mailNicknameがセットに属性を確認するためにチェックしましたが、何も返されません。 objectcategoryをuserに変更すると、すべてのユーザーが取得されますが、連絡先の場合は何も取得されません。
私が間違っていることはありますか?非常に有用であり
Dim Searcher As New DirectorySearcher("LDAP://")
Dim QueryResults As SearchResultCollection
Dim Result As SearchResult
Searcher.PropertiesToLoad.Add("distinguishedName")
Searcher.Filter = "(&(objectCategory=person)(objectClass=contact))"
QueryResults = Searcher.FindAll
For Each Result In QueryResults
Console.WriteLine(Result.Properties("distinguishedName")(0))
Next
Console.ReadLine()
:ここ
Searcher.Filter = "(&(objectCategory=person)(objectClass=contact))"
すべての連絡先のDNを取得するには少し例:あなただけのフィルタは次のようになります。連絡先を検索したい場合は