t0m*_*man 6 url excel vba ldap
我试图通过Visual Basic进行LDAP查询.我没有Active Directory的管理员权限,但我能够查看所有用户对象.我不知道在我通过LDAP://查询搜索目录时有什么限制.
在我正在构建的Excel应用程序中,我有一个用于输入用户ID的列.一旦用户输入用户ID,我希望根据与该用户相关联的服务器端信息自动填充其他列(例如,电子邮件地址)
假设c.Value是已输入电子表格的用户ID值:
strUser = "CN=" & c.Value & ",OU=User Accounts,OU=Area,OU=Users,OU=Accounts,DC=joe,DC=bloggs,DC=co,DC=uk/"
Set objUser = GetObject("LDAP://" & strUser)
Run Code Online (Sandbox Code Playgroud)
问题是这个 - 其中OU =区域已知,搜索成功.但是,我希望查询检查UserID的所有区域OU.据我所知,他们没有被保留或镜像在一个中心位置.是否可以在这样的查询中使用通配符?
有没有人有任何其他想法或建议,以替代方式去做这个?
谢谢,
汤姆
在回答您的问题之前,以下是Active Directory的一些基本知识背景知识.
要执行LDAP查询,您需要使用ADO连接对象.您需要将LDAP查询字符串传递给ADO连接对象.LDAP查询字符串包含四个部分.
您应该使用的LDAP查询字符串应该是类似的
<LDAP://OU=Users,OU=Accounts,DC=joe,DC=bloggs,DC=co,DC=uk>;(&(objectClass=user)(samAccountName=yourusername));adspath;subtree
Run Code Online (Sandbox Code Playgroud)
<LDAP://OU=Users,OU=Accounts,DC=joe,DC=bloggs,DC=co,DC=uk>
.这意味着在这个级别开始搜索(&(objectClass=user)(samAccountName=yourusername))
.当然,您需要替换yourusername
代码中的其他内容.如果您真的想在CN上进行搜索,请在此处将其更改为CNadspath
,允许您稍后绑定到该对象subtree
这是一个完整的样本,我想它应该完成你的工作
userName = "harvey"
ldapStr = "<LDAP://OU=Users,OU=Accounts,DC=joe,DC=bloggs,DC=co,DC=uk>;(&(objectClass=user)(samAccountName=" & userName & "));adspath;subtree
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADSDSOObject"
conn.Open "ADs Provider"
Set rs = conn.Execute(ldapStr)
While Not rs.EOF
wscript.echo rs.Fields(0)
rs.MoveNext
Wend
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3623 次 |
最近记录: |