vbs ldap query issues

↘锁芯ラ 提交于 2019-12-11 05:12:18

问题


i am currently trying to use my small knowledge of scripting to search through ldap find a user based on a variable then get my the displayname for that user. so far i ahve the below and im stuck

On Error Resume Next

Dim objNetwork 
Dim userName   

  Set objNetwork = CreateObject("WScript.Network") 
  userName = objNetwork.UserName   
  WScript.Echo userName 


  Set objConnection = CreateObject("ADODB.Connection")
 Set objCommand =   CreateObject("ADODB.Command")
 objConnection.Provider = "ADsDSOObject"
 objConnection.Open "Active Directory Provider"
 Set objCommand.ActiveConnection = objConnection

     objCommand.Properties("Page Size") = 1000

        objCommand.CommandText =  _
  "<LDAP://dc=domain,dc=com>;(objectCategory=User);Name;Subtree"  
Set objRecordSet = objCommand.Execute

 objRecordSet.MoveFirst

  Do Until objRecordSet.Fields("Name").Value = username

  objRecordSet.MoveNext
  Loop

  Wscript.Echo objRecordSet.Fields("Name").Value

= PLEASE HELP!!

I scartached the above and am now trying this but get syntax errors

option explicit dim cmd, cn, rs, objRoot,
set cmd = createobject("ADODB.Command") 
    set cn = createobject("ADODB.Connection") 

set rs = createobject("ADODB.Recordset") 
cn.open "Provider=ADsDSOObject;" 

cmd.activeconnection = cn set 

objRoot = getobject("LDAP://RootDSE") cmd.commandtext = "<LDAP://dn=domain,dn=com">;(&(objectClass=user)(!(objectClass=computer)            (sAMAccountName=first.last))));name,displayname;subtree"

cmd.properties("page size")=1000 set rs = cmd.execute 

wscript.echo rs("name") 

回答1:


I doubt the attribute name is Name, and try displayName instead in this line:

"<LDAP://dc=domain,dc=com>;(objectCategory=User);Name;Subtree" 



回答2:


ended up getting with this

Set objConnection = CreateObject("ADODB.Connection")

Set objCommand = CreateObject("ADODB.Command")  

objConnection.Open "Provider=ADsDSOObject;" 
objCommand.ActiveConnection = objConnection  

strDomainName = "dc=domain,dc=com" 
strUserCN = username 
objCommand.CommandText = "<LDAP://" & strDomainName & ">;(&(objectCategory=person)     (objectClass=user)(cn=" & strUserCN & "));displayName;subtree"  

Set objRecordSet = objCommand.Execute  

If Not objRecordset.EOF Then  

strray = split(objRecordSet.Fields("displayName"),"(") 
strdat = strray(0)



username = trim(strdat)

End If  


来源:https://stackoverflow.com/questions/12322446/vbs-ldap-query-issues

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!