嗨,RD。过去几天以来,我们一直在回答一些需要较大篇幅才能说清的问题,因此我们决定今天偷懒一下(今天可是星期五哦!),回答一个简单点的。在您的 Active Directory 中,有一个名为 NA 的 OU,并且在这个 OU 中,有一个名为 Human Resources 的子 OU。您尝试获取一个位于 Human Resources OU 中的用户帐户,但是恰如您发现的,以下代码无法实现这个目的:
Set objUser = GetObject _
("LDAP://CN=Ken Meyer, OU=NA/Human Resources, DC=fabrikam, dc=com ")
为什么不能呢?好吧,您在这里尝试使用快捷方式,但 ADSI 不支持快捷方式。您指定 OU 的名称为 NA/Human Resources,显然,您指的是“位于 NA OU 中的名为 Human Resources 的 OU。”这对我们来说可以理解,但是 ADSI 却不能。相反,ADSI 要求您将可分辩名称中的每个部分分开;不能使用快捷方式。因此您需要使用类似如下的绑定字符串:
Set objUser = GetObject _
("LDAP://CN=Ken Meyer, OU=Human Resources, OU=NA, DC=fabrikam, dc=com ")
注意在创建绑定字符串时 ADSI 要求您向后工作。您可以从实际用户帐户本身 (CN=Ken Meyer) 开始。接下来您转到用户帐户所在的 OU:OU= Human Resources.您从此处转到父 OU:OU=NA.但如果 NA OU 实际上是 Headquarters(比如说)的子 OU 呢?没问题,这种情况下您的绑定字符串应该类似如下所示:
Set objUser = GetObject _
("LDAP://CN=Ken Meyer, OU=Human Resources, OU=NA, " & _
"OU=Headquarters, DC=fabrikam, dc=com ")
接着您附加域组件 (DC=fabrikam, DC=com),这样问题就解决了。