1

我正在查询组中所有成员的 AD。

结果,我得到了用户和组。我的问题:我怎样才能知道,单一的结果是什么(个人或团体)?

这是我的代码,我得到一个 Resultpropertycollection,当我遍历集合时,我想知道每个项目是一个人还是一个组。

ds.PropertiesToLoad.Add("member")

For Each sr As SearchResult In ds.FindAll
  Dim valueCollection As ResultPropertyValueCollection = sr.Properties("member")
  Dim propertyValue As Object

  For Each propertyValue In valueCollection
    Console.WriteLine("{0}", propertyValue.ToString())
  Next propertyValue
Next

问候亚武兹

更新:

这是完整的代码:

Private Sub EnumPropertyAndMembersOfGroup(ByVal name As String, ByVal propertyname As String)
    Try
        Dim de As DirectoryEntry = New DirectoryEntry("LDAP://lab.com")
        Dim ds As DirectorySearcher = New DirectorySearcher

        ds.Filter = "(&(objectCategory=group)(cn=" & name & "))"
        ds.PropertiesToLoad.Add("sAMAccountName")
        ds.PropertiesToLoad.Add("memberOf")
        ds.PropertiesToLoad.Add("member")

        For Each sr As SearchResult In ds.FindAll
            Console.WriteLine("Search properties for {0}", sr.Path)
            Console.WriteLine()

            Dim valueCollection As ResultPropertyValueCollection = sr.Properties(propertyname)
            Dim propertyValue As Object

            For Each propertyValue In valueCollection
                Console.WriteLine("{0}", propertyValue.ToString())
            Next propertyValue
        Next
        Console.ReadKey()
    Catch ex As Exception
        Console.WriteLine("ERROR: " & ex.Message)
        Console.ReadKey()
    End Try
End Sub
4

2 回答 2

0

好的,这是解决方案:

必须使用返回对象的 DN 进行新查询并检查对象类:

如何确定帐户的类型(AD 用户与 AD 组)?

于 2012-09-16T12:59:28.723 回答
0

您应该能够通过查询 objectClass 属性或找到的条目 DN 来区分人员或组。

如这里所示

http://msdn.microsoft.com/en-us/library/windows/desktop/aa746475(v=vs.85).aspx

users 在其 objectClass 属性值中有“user”。

如何编写 LDAP 查询来测试用户是否是组的成员?

于 2012-09-15T19:15:05.413 回答