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

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

Ответить
Настройки темы
Любой язык - [решено] BASH+Ldapsearch - поиск включенных и отключенных учетных записей

Старожил


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

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


Всем привет!

Стоит задача: скриптом bash в определенных OU в домене искать отключенные и включенные учетные записи.

Вот таким скриптом удалось выдернуть количество отключенных учеток.
Поиск отключенных
echo "start"
EEC=$(ldapsearch -x -H ldap://192.168.1.110 -D 'test\admin' -w Qwerty1234 -b 'OU=IS,DC=test,DC=local' '(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))'| grep 'dn' | wc -l)
echo "disabled accounts = "$EEC


Никак теперь не пойму, как таким же способом найти только включенные учетки? Перед userAccountControl ставлю восклицательный знак, чтобы сделать отрицание NOT, и после этого скрипт не работает.
поиск включенных
echo "start"
EEC=$(ldapsearch -x -H ldap://192.168.1.110 -D 'test\admin' -w Qwerty1234 -b 'OU=IS,DC=test,DC=local' '(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))'| grep 'dn' | wc -l)
echo "disabled accounts = "$EEC


Возвращается такой ответ:

start
ldap_search_ext: Bad search filter (-7)
disabled accounts = 0

Отправлено: 13:53, 14-01-2022

 

Старожил


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

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


Решил вопрос. Надо отрицание тоже брать в скобки. Получилось в итоге так
поиск включенных
echo "start"
EEC=$(ldapsearch -x -H ldap://192.168.1.110 -D 'test\admin' -w Qwerty1234 -b 'OU=IS,DC=test,DC=local' '(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'| grep 'dn' | wc -l)
echo "disabled accounts = "$EEC

Отправлено: 14:15, 14-01-2022 | #2



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

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


Старожил


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

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


Помогите еще пожалуйста с поиском в разных OU. Нужно искать в нескольких OU и выводить в итоговый суммированный результат.

Отправлено: 15:18, 14-01-2022 | #3


Старожил


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

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


Попробовал сделать разными путями. Одно из решений - использовать конструкцию $((переменная+переменная2))
Сложение
echo "start"
EEC=$(ldapsearch -x -H ldap://192.168.1.110 -D 'test\admin' -w Qwerty1234 -b 'OU=IS,DC=test,DC=local' '(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'| grep 'dn' | wc -l)
echo "disabled accounts = "$EEC

echo "start2"
EEC2=$(ldapsearch -x -H ldap://192.168.1.110 -D 'test\admin' -w Qwerty1234 -b 'OU=IS2,DC=test,DC=local' '(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'| grep 'dn' | wc -l)
echo "disabled accounts = "$EEC2

res=$((EEC+EEC2))
echo $res


Но это не работает - возвращается ошибка
")syntax error: invalid arithmetic operator (error token is "

Отправлено: 12:31, 17-01-2022 | #4


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


https://stackoverflow.com/questions/...ne-specific-ou

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 13:05, 17-01-2022 | #5


Старожил


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

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


Цитата DJ Mogarych:
https://stackoverflow.com/questions/...ne-specific-ou »
Эту статью тоже находил, читал. Но проблема оказалась в другом. У меня текстовый редактор в Mobaxterm был настроена формат Dos. Поэтому при каждом сохранении документа в конце строки добавлялся символ "^M".
Поменял формат на Unix, удалил все лишние символы и все заработало. В итоге эти конструкции оказались рабочими:

Первая конструкция
res=$((EEC+EEC2))
echo $res

Вторая конструкция
res=$(($EEC+$EEC2))
echo $res

Отправлено: 14:01, 17-01-2022 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2012 R2 - Блокировка учетных записей SkyNezu Windows Server 2012/2012 R2 2 25-05-2017 14:10
VBS/WSH/JS - Контроль учетных записей datafile4 Скриптовые языки администрирования Windows 0 27-06-2014 15:15
кешь Учетных записей Sluggard Microsoft Windows NT/2000/2003 7 21-05-2006 13:43
Создание учетных записей Pauletto Microsoft Windows 2000/XP 7 30-04-2006 00:14
Отображение учетных записей Yoghurt Microsoft Windows 2000/XP 7 12-02-2004 23:54




 
Переход