2013-07-19 78 views
1

我正在尋找使用VBScript在Active Directory中搜索用戶的方式。我可以通過用戶名或利用ADODB連接任何Active Directory搜索:以全名搜索Active Directory中的用戶

Set objConnection = CreateObject("ADODB.Connection") 
Set objCommand = CreateObject("ADODB.Command") 
objConnection.Provider = ("ADsDSOObject") 
objConnection.Open "Active Directory Provider" 
objCommand.ActiveConnection = objConnection 
objCommand.Properties("SearchScope") = 2 
objCommand.CommandText = "SELECT userWorkstations,sAMAccountName,Mail,name,DisplayName,distinguishedName FROM 'LDAP://dc=NESTLE,dc=com' WHERE objectCategory='user' AND name='" & VaR5 & "'" 
Set objRecordSet = objCommand.Execute 

但我想找到他的全名用戶,例如「李四」(網友:JDOE)。就像在AD用戶和計算機界面中,我們可以通過「John Doe」進行搜索。

回答

0

變化

"... name='" & var5 & "'" 

要麼

"... displayName='" & var5 & "'" 

"... sn='" & lastname & "' and givenName='" & firstname & "'" 

對於後者,你需要兩個變量:一個與第一和其他與姓氏。

+0

偉大的想法,但我還有一個問題,因爲initialy我的變量是「John doe」,我可以分開分開,好的,但有一個像「TI TU PHAN Nguyen」這樣的名字,它不起作用,我實際上需要使用AD界面中用於搜索的相同功能,您可以使用名稱,名字,全名,郵件或用戶名。我認爲如果可能的話,我會在outlook中測試解析函數。等着瞧 謝謝你的回答... –

+0

我現在不能測試這個,但是你應該能夠用'或'操作符:'name ='...'或者(sn =')來組合各種條件。 ..'和givenName ='...')或displayName ='...'或mail ='...'或...' –

0

好,似乎通過變通辦法要使用Outlook功能

Dim myOlApp

Dim myOlNameSpace

Dim objFolder

Set myOlApp = CreateObject("Outlook.Application")

Set myOlNameSpace = myOlApp.GetNamespace("MAPI")

Set myRecipient = myOlNameSpace.CreateRecipient("Martin Pierre-François")

myRecipient.Resolve

msgbox myRecipient

後,我做我的搜索結果在AD與displayName屬性

感謝所有

相關問題