Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Bash ldapsearch дата whencreated в виде переменной (http://forum.oszone.net/showthread.php?t=355599)

dahiko 15-08-2024 13:34 3029921

Bash ldapsearch дата whencreated в виде переменной
 
Всем привет!

У меня есть bash скрипт, который выгружает пользователей из Active Directory с помощью ldapsearch.

Скрипт
#!/bin/bash
source /home/myproject/scripts/config.sh

#-----------------------------------LDAP QUERY----------------------------------
echo "start ldapsearch"

#BTS ldapsearch, calculate and curl to dashboard
ldapsearch -x -H ldap://$ad -D $aduser -w $adpassword -b 'OU=Users,OU=Test,DC=sec,DC=local' '(&(objectCategory=person)(objectClass=user) (!(userAccountControl:1.2.840.113556.1.4.803:=2))(whencreated<=20240520000000.0Z))' | grep 'mail: ' | cut -d" " -f2 > ./users.txt


Этот скрипт использует переменные $ad, $aduser, $adpassword с другого файла config.sh для подключения к Active Directory и вытаскивает только включенных пользователей, которые были созданы до 20.05.2024.

Теперь стоит задача - перенести дату 20240520000000.0Z в config.sh, чтобы не менять ее постоянно во всех скриптах и дёргать дату в виде переменной в этот скрипт.

Если я подправлю LDAP-фильтр вот так (whencreated<=$date) то это не работает. Никаких ошибок и пользователи просто не выгружаются. Видимо скрипт так и передает в запросе $date а не дату из файла config.sh

Вопрос, как это сделать? Или это не реально внустри LDAP-фильтра подставлять переменную?

dahiko 15-08-2024 13:49 3029924

$date - подумал, что это зарегистрированная команда и ее нельзя использовать и поменял $date на другое имя - тоже не работает

dahiko 15-08-2024 14:24 3029926

Нашел решение - нужо было указать переменную в одинарных кавычках (whencreated<='$date')

NickM 15-08-2024 14:27 3029929

Попробуйте сначала формировать строку поиска, а после её передавать в ldapsearch

Цитата:

Цитата NickM
Попробуйте сначала формировать строку поиска, а после её передавать в ldapsearch »

Упс, не увидел этого сообщения:
Цитата:

Цитата dahiko
Нашел решение - нужно было указать переменную в одинарных кавычках (whencreated<='$date') »



Время: 16:31.

Время: 16:31.
© OSzone.net 2001-