2014-09-04 61 views
0

编写需要显示Active Directory动态通讯组列表的vb.net应用程序。下面的代码在检索组列表时工作 - 但是当我将OU = DynamicDistributionGroups添加到上下文定义时,它不返回任何内容。这样可以使用GroupPrincipal获得动态分发组吗?欢迎提出建议?由于如何使用PrincipalContext获取Active Directory动态通讯组?

Using ctx As New PrincipalContext 
(ContextType.Domain, "MYLAN", "OU=DynamicDistributionGroups,OU=Email 
Groups,DC=mylan,DC=ac,DC=mycompany,DC=com") 

Dim pGroup As New GroupPrincipal(ctx) 
pGroup.Name = "*" 
Dim pSearcher As New PrincipalSearcher() 
pSearcher.QueryFilter = pGroup 
Dim results As PrincipalSearchResult(Of Principal) = pSearcher.FindAll() 
For Each p As Principal In results 
    listGroup.Items.Add(p.ToString()) 
Next 
End Using 

回答

0

我能够完成使用的DirectorySearcher这个任务,而不是主体上下文如下:

Dim results As SearchResultCollection 
Dim srch As New DirectorySearcher("LDAP://MYLAN/OU=DynamicDistributionGroups,OU=Email  
Groups,DC=mylan,DC=ac,DC=mycompany,DC=com") 
srch.Filter = "(objectClass=msExchDynamicDistributionList)" 
srch.PropertiesToLoad.Add("displayName") 
srch.PageSize = 1000 
results = srch.FindAll() 
For Each result As SearchResult In results 
    Dim props As ResultPropertyCollection = result.Properties 
    For Each propName As String In props.PropertyNames 
     Dim groupName As String = props(propName)(0) 
    Next 
Next 
相关问题