Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Bash ldapsearch дата whencreated в виде переменной

Ответить
Настройки темы
Любой язык - [решено] Bash ldapsearch дата whencreated в виде переменной

Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


Изменения
Автор: dahiko
Дата: 15-08-2024
Описание: орфографические ошибки
Всем привет!

У меня есть 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-фильтра подставлять переменную?

Отправлено: 13:34, 15-08-2024

 

Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:49, 15-08-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:24, 15-08-2024 | #3


Аватара для NickM

Ветеран


Contributor


Сообщения: 4389
Благодарности: 1033

Профиль | Отправить PM | Цитировать


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

Цитата NickM:
Попробуйте сначала формировать строку поиска, а после её передавать в ldapsearch »
Упс, не увидел этого сообщения:
Цитата dahiko:
Нашел решение - нужно было указать переменную в одинарных кавычках (whencreated<='$date') »

Отправлено: 14:27, 15-08-2024 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Bash ldapsearch дата whencreated в виде переменной

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] BASH+Ldapsearch - поиск включенных и отключенных учетных записей dahiko Скриптовые языки администрирования Windows 5 17-01-2022 14:01
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
CMD/BAT - [решено] Сравнение переменной цикла со строковой переменной NickM Скриптовые языки администрирования Windows 2 17-01-2017 10:28
CMD/BAT - [решено] В переменной содержится имя переменной opravdin Скриптовые языки администрирования Windows 3 28-01-2013 11:11
Прочее - BASH zelo Общий по Linux 3 04-02-2008 10:19




 
Переход