Excel - 根据Excel工作表中的显示名称从AD获取用户名

时间:2011-05-20 10:41:04

标签: vb.net excel vba excel-vba

所以我有这张Excel员工表,里面有关于他们的所有信息。我正在尝试将此信息导入AD,但为了做到这一点,我还需要获取这些用户的用户名。我希望vba代码或vb.net代码基本上取D列中每一行的值,并在AD中查找它并返回用户名并将其添加到A列。这样的事情是可能的吗?

1 个答案:

答案 0 :(得分:1)

ADO.NET是可行的。我不能在我目前的环境中尝试它,但我过去成功使用过它:

添加对ADO类型库(msadoXX.dll)的引用。

使用您自己的凭据创建与ActiveDirectory的连接。有时它可以在不指定凭据的情况下工作(单点登录):

Dim Con As New Connection
con.Provider = "ADsDSOObject"
oConnect.Properties("User ID") = "userme"
oConnect.Properties("Password") = "xxxx"
oConnect.Properties("Encrypt Password") = True
oConnect.Open "MyExcelConnection", stUser, stPass

接下来创建一个命令:

Dim command As New Command
Set command.ActiveConnection = oConnect
command.CommandText =
    "<LDAP://dc.company.com/ou=accounting,dc=company,dc=com>;(objectClass=user);displayName,mail;subtree"

然后执行查询命令:

Dim rs As ResultSet
Set rs = cmd.Execute
While Not rs.EOF
    X = rs.Fields(0).Value
    Y = rs.Fields(1).Value
    rs.MoveNext
Wend

当然,您必须根据需要调整查询。