【问题标题】:How do I get Active Directory Dynamic Distribution Groups using PrincipalContext?如何使用 PrincipalContext 获取 Active Directory 动态通讯组?
【发布时间】:2014-09-04 15:40:59
【问题描述】:

编写需要显示 Active Directory 动态通讯组列表的 vb.net 应用程序。下面的代码在检索组列表时有效 - 但当我将 OU=DynamicDistributionGroups 添加到上下文定义时,什么也不返回。可以通过这种方式使用 GroupPrincipal 获取动态分发组吗?欢迎提出建议?谢谢

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

【问题讨论】:

    标签: vb.net active-directory


    【解决方案1】:

    我能够使用 DirectorySearcher 而不是 Principal Context 完成这项任务,如下所示:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      相关资源
      最近更新 更多