温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ms access - Get organizationUnit from LDAP with VBA
active-directory ldap ms-access vba

ms access - 使用VBA从LDAP获取organizationalUnit

发布于 2020-04-04 10:22:05

我正在使用Access 2003,并且已经有一个从LDAP提取很多数据的代码。这是我得到的:

Set rootDSE = GetObject("LDAP://RootDSE")
domainContainer = rootDSE.Get("defaultNamingContext")

conn.provider = "ADSDSOObject"
conn.Open "ADs Provider"

ldapStr = "<LDAP://" & domainContainer & ">;(& (mailnickname=" & nickname & ") (| (&(objectCategory=person)(objectClass=user)(!(homeMDB=*))(!(msExchHomeServerName=*)))(&(objectCategory=person)(objectClass=user)(|(homeMDB=*)(msExchHomeServerName=*))) ));adspath;subtree"
exchangeRS.Open ldapStr, conn, adOpenStatic, adLockReadOnly
exchangeRS.MoveFirst

Do Until exchangeRS.EOF
    Set oUser = GetObject(exchangeRS.fields(0).value)

    ' The properties below are working
    'oUser.firstName
    'oUser.displayName
    'oUser.title
    'oUser.telephoneNumber
    'oUser.mobile
    'oUser.faxNumber
    'oUser.streetAddress
    'oUser.l
    'oUser.postalCode
    'oUser.mail
Next

我能够在LDAP数据库中为每个人获得很多信息。但是,我也想获得结构单元但是,oUser.organizationUnit不退出,oUser.OU仅包含顶层单元,这不是我想要的。

有没有办法列出oUser的所有属性以找到正确的属性?ldapStr失去了一些东西?

这是我想要获得的图像(很抱歉,它是法语的):

单元

是否可能未将其存储在LDAP中?如果没有,有什么办法可以从Outlook通讯簿中获取它?但是我真的更喜欢从LDAP实际获得它,因为实际上其他所有单个信息都在那儿(这使我相信这也应该在那儿)。

查看更多

提问者
dan
被浏览
86
dan 2012-10-22 08:57

我所有测试的结果表明,该数据未存储在LDAP中。