dahiko
14-01-2022, 13:53
Всем привет!
Стоит задача: скриптом 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
Стоит задача: скриптом 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