Я получаю сообщение об ошибке при попытке выполнить запрос с помощью VBSОшибка при выполнении запроса LDAP
Если удалить 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
Вот запрос, который производится -
А вот ошибка, которую я получаю -
DistinguishedName типа атрибута, как правило, не включает в себя правило соответствия SUBSTR. Именно по этой причине значение подстроки (не подстановочное) не может использоваться в этих случаях. –
Спасибо за ответ, но, к сожалению, это не сработает. Сначала я подумал, что это может быть связано с тем, что рассматриваемый OU не был верхним уровнем, но даже жесткое кодирование, которое в результате теста не выполнялось - «На сервере нет такого объекта» (код 80040E37). –
Извиняется, он работает, если я жестко программирую остальную часть пути OU (но только если вы правильно назовете имена контейнеров !!!). Проблема в том, что пользователь указывает, что OU должен включать, поэтому этот метод, хотя и действителен, выглядит так, как будто это не сработает в моем случае. Благодарю. –