2011-05-20 101 views
0

因此,我收到了這張Excel員工所有關於他們的信息。我試圖將這些信息導入到AD中,但爲了做到這一點,我還需要爲這些用戶獲取用戶名。我想vba代碼或vb.net代碼基本上採用列D中的每一行的值,並在AD中查找它並返回用戶名並將其添加到列A.這樣的事情是可能的嗎?Excel - 根據Excel工作表中的顯示名稱從AD獲取用戶名

+0

我知道Excel方面但我不熟悉AD。這將取決於AD的API - 您能否提供您最佳的猜測方法? – rajah9 2011-05-20 15:18:54

回答

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 

當然,你」將不得不根據您的需要調整查詢。