【问题标题】:Searching User In Active Directory By Full Name按全名在 Active Directory 中搜索用户
【发布时间】:2015-07-02 22:56:36
【问题描述】:

我正在寻找使用 VBScript 在 Active Directory 中搜索用户的方法。我可以使用 ADODB Connection 按用户名或任何 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

但我想找到一个有全名的用户,例如“John Doe”(用户:Jdoe)。因此,就像在 AD 用户和计算机 界面中一样,我们可以通过“John Doe”进行搜索。

【问题讨论】:

    标签: search vbscript active-directory


    【解决方案1】:

    改变

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

    到任一

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

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

    对于后者,您需要 2 个变量:一个带有第一个变量,另一个带有姓氏。

    【讨论】:

    • 好主意,但我还有另一个问题,因为最初我的变量是“John doe”,我可以用 split 分开,好的,但是用一个像“TI TU PHAN Nguyen”这样的名字就行不通了,我实际上需要使用与 AD 界面相同的功能进行搜索,您可以使用姓名、名字、全名、邮件或用户 ID。我想如果可能的话,我会在 Outlook 中使用解析功能进行测试。等着看谢谢回答...
    • 我现在不能测试这个,但是你应该可以将各种条件与or操作符结合起来:name='...' or (sn='...' and givenName='...') or displayName='...' or mail='...' or ...
    【解决方案2】:

    好的,它似乎可以通过使用 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

    在我使用 displayName 属性在 AD 中进行搜索之后

    谢谢大家

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2017-04-07
      相关资源
      最近更新 更多