尝试使用VBS执行查询时出现错误
如果我删除查询的strWhereOU
部分,那么它可以工作,所以问题就在那里,但我不知道在哪里。任何指针都是挪用的。感谢。
我正在使用此代码生成查询 -
For i = 0 To Ubound(arrIncludeOU)
arrIncludeOU(i) = "ADsPath LIKE '%OU=" & Trim(arrIncludeOU(i)) & "%'"
Next
strWhereOU = "AND (" & Join(arrIncludeOU, " OR ") & ") "
'** Set the query string and parameters *'
objCommand.CommandText = _
"SELECT Name, operatingSystem, ADsPath, lastLogonTimeStamp " & _
"FROM 'LDAP://" & strDomain & "' " & _
"WHERE objectClass = 'computer' " & strWhereOU & _
"ORDER BY Name"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = 2
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False
'** Execute the query *'
Set objRecordSet = objCommand.Execute
以下是正在生成的查询 -
这是我得到的错误 -
答案 0 :(得分:0)
LIKE %
导致问题,但Adspath上的通配符也是如此。
此处使用的相应通配符为='*'
,但似乎您无法对Adspath(或distinguishedName)进行通配符搜索。您可以在Name,CN或其他各种属性(WHERE Name ='Smith*'
)上使用通配符,但这对您没有帮助。
您需要将FROM
位置更改为此类内容。
strOU = "OU=Sherborne Desktops,"
"FROM 'LDAP://" & strOU & strDomain & "' " & _
阅读此页面以获取更多信息http://technet.microsoft.com/en-us/library/ee692831.aspx