Я переписываю несколько скриптов PowerShell для работы на PHP, и этот застрял. Мне нужно получить список компьютеров, но исключить те, которые имеют -NEW и -OLD. Ниже я думаю, как это сделать, но когда я пытаюсь это сделать, я получаю ldap_search(): Search: Bad search filter
как ошибка.
$LDAP_Search_String = "(&(objectClass=computer)(name=NFDW*)(!name=NFDW*-NEW)(!name=NFDW*-OLD))";
Если я удалю (!name=NFDW*-NEW)(!name=NFDW*-OLD)
Исходя из запроса, он работает нормально.
Дополнительная информация:
я пытался (&(objectClass=computer)(name=NFDW*)(|(!name=NFDW*-NEW)(!name=NFDW*-OLD)))
а также предложенный удаленным ответом и тем же результатом фильтра плохого поиска.
Попробуйте добавить круглые скобки вокруг вашего! то есть (!(name=NFDW*-NEW))(!(name=NFDW*-OLD))
Других решений пока нет …