0
我越來越想如果我刪除查詢的strWhereOU
部分,然後它的工作原理來執行使用VBS錯誤運行時,LDAP查詢
查詢時出現錯誤,所以這個問題是在某個地方,但我不不知道在哪裏。任何指針撥用。謝謝。
我使用這個代碼生成查詢 -
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
這裏是一個正在生產的查詢 -
這裏是我得到的錯誤 -
distinguishedName屬性類型定義通常不包括SUBSTR匹配規則。這是在這些情況下不能使用子字符串(不是通配符)斷言值的原因。 –
感謝您的回覆,但不幸的是這不起作用。我首先想到的可能是因爲有問題的OU不是最高級別的,但是甚至硬編碼到查詢測試失敗 - 「服務器上沒有這樣的對象」(代碼80040E37)。 –
道歉,如果我對OU路徑的其餘部分進行硬編碼(但只有正確拼寫容器名稱!!!),它才能正常工作。問題是用戶指定要包含的OU,所以這個方法雖然有效,但看起來對我來說不起作用。謝謝。 –