我目前正在尝试使用我的脚本编写小知识来搜索ldap根据变量查找用户然后获取该用户的显示名称。 到目前为止,我已经在下面而且我卡住了
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
=请帮助!!
我收听了上面的内容,现在正在尝试这个但是会出现语法错误
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")
答案 0 :(得分:1)
我怀疑属性名称是Name,并在此行中尝试使用displayName:
"<LDAP://dc=domain,dc=com>;(objectCategory=User);Name;Subtree"
答案 1 :(得分:1)
最终得到了这个
设置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