VB.net Active Directory获取组

时间:2019-02-21 13:47:45

标签: vb.net attributes

我试图从广告组中获取描述的值,我可以使用广告来单独查看值,但是我正在编写一个小型应用程序,其中列出了单个用户的所有组和描述。

图片显示了我希望从中提取数据的字段

enter image description here

这是我到目前为止的代码:

作为新DirectoryEntry()昏暗         de.Path =“ LDAP:// {domain}”

    Dim searcher As New DirectorySearcher(de)


    searcher.Filter = String.Format("(&(objectClass=user)(objectCategory=person)(sAMAccountName={0}))", {search string for target user})
    searcher.PropertiesToLoad.AddRange(New String() {"memberOf"})

将结果作为SearchResultCollection =无

Try
        results = searcher.FindAll()

        If (results.Count > 0) Then
            Dim result As SearchResult = results(0)
            For Each role As String In result.Properties("memberOf")
        If role.StartsWith("CN=RG_") Then

{在这里我要检索描述值}

            End If
            Next
        End If
Catch ex As Exception
        Throw ex
    Finally
        If (Not results Is Nothing) Then
            results.Dispose()
        End If
        searcher.Dispose()
    End Try

1 个答案:

答案 0 :(得分:0)

我休息了一下,看着屏幕,在做另一项平凡的任务时,我发现自己很愚蠢。答案很简单……我正在搜索错误的对象类:

    searcher.Filter = String.Format("(&(objectClass=group)(CN=" & groupname & "))".Replace("\", "\\"))
    searcher.PropertiesToLoad.AddRange(New String() {"description"})

因此,我针对用户进行搜索,如果我想要描述,那么对于返回的每个组,我只需使用新过滤器运行另一个查询即可。