![指定 LDAP 查询](https://linux22.com/image/637729/%E6%8C%87%E5%AE%9A%20LDAP%20%E6%9F%A5%E8%AF%A2.png)
当我 ping 140West-dc 时,它返回:
Pinging 140West-dc.bvncap.local
我的 LDAP 查询如下:
LDAP://dc=bvncap,dc=local
有没有办法传递"140West-dc.bvncap.local"
给 LDAP 查询而不仅仅是"bvncap.local"
注:140West
是我的办公地点。
编辑:
我将通用名称传递给查询,如下所示:
LDAP://cn=140West-dc,dc=bvncap,dc=local
但出现错误:
Run-time error : There is no such object on the server
以下是命令文本:
SELECT AdsPath FROM 'LDAP://cn=140West-dc,dc=bvncap,dc=local' WHERE objectCategory='user' And sAMAccountName = 'hjose'
当我执行时出现此错误:
set rs = cmd.Execute
答案1
答案2
LDAP 连接字符串需要以下语法:
LDAP://[<server name>/]<baseDN>
服务器名称是可选的,但如果需要,可以是 IP 地址或任何可解析的 DNS 条目(即 140west-dc 或 140west-dc.bvncap.local)。如果未指定,它将连接到与 AD 站点和服务中的 IP 范围关联的 DC。
baseDN 是您连接到目录中的位置。您可以连接到域的根目录 (dc=bvncap,dc=local),或父域的子域 (dc=subdomain,dc=bvncap,dc=local),或该子域下的某个 OU (ou=Level2,ou=Level1,dc=bvncap,dc=local)。这会影响您的搜索开始的位置。
这里有一些很好的信息:LDAP AD路径
此外,您的 WHERE 子句应该包含“objectClass=user”或“objectCategory=person”。但是,该属性不是必需的,因为 sAMAccountName 在目录中是唯一的,因此无论哪种方式都只会返回一个对象。