如何通过sAMAccountName和Domain查询LDAP存储? Active Directory或LDAP术语中命名的“域”属性是什么?

到目前为止,这就是我要使用的过滤器。我希望能够添加域:

(&(objectCategory=Person)(sAMAccountName=BTYNDALL))

最佳答案

首先,将搜索过滤器修改为仅查找用户而不是联系人:

(&(objectCategory=person)(objectClass=user)(sAMAccountName=BTYNDALL))

您可以通过连接到配置分区并枚举分区容器中的所有条目来枚举目录林的所有域。抱歉,我现在没有任何C#代码,但是下面是我过去使用的一些vbscript代码:
Set objRootDSE = GetObject("LDAP://RootDSE")
AdComm.Properties("Sort on") = "name"
AdComm.CommandText = "<LDAP://cn=Partitions," & _
    objRootDSE.Get("ConfigurationNamingContext") & ">;" & _
        "(&(objectcategory=crossRef)(systemFlags=3));" & _
            "name,nCName,dnsRoot;onelevel"
set AdRs = AdComm.Execute

从中可以检索每个分区的名称和dnsRoot:
AdRs.MoveFirst
With AdRs
  While Not .EOF
    dnsRoot = .Fields("dnsRoot")

    Set objOption = Document.createElement("OPTION")
    objOption.Text = dnsRoot(0)
    objOption.Value = "LDAP://" & dnsRoot(0) & "/" & .Fields("nCName").Value
    Domain.Add(objOption)
    .MoveNext
  Wend
End With

10-02 01:38