2013-07-19 43 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属性

感谢所有

相关问题