czwartek, 2 października 2014

Wyciągamy LDAPem dane z AD

Odkopałem stary nieopublikowany post :). Cała operacja w tym przypadku była przydatna przy migracji z LDAP do AD. Posłużyłem się skryptem, który importował użytkowników do Zimbry. Zmodyfikowany skrypt ldap.sh, wyciąga nazwy użytkowników z AD do pliku, a następnie, za pomocą nazw użytkowników wyciąga dane nt. każdego usera. Bazowałem na skrypcie znalezionym na stronie

--------------------ldap.sh--------------------
##DATA MODYFIKACJI 19.04.2014
#ZMIENNE
LDAPSEARCH=/usr/bin/ldapsearch
DOMAIN_NAME="przyklad.pl"
TMP_DIR=/root/ldap_acc
ADS_TMP=$TMP_DIR/users.lst
ADS_TMP2=$TMP_DIR/WYNIK.TXT
# Server values
LDAP_SERVER="ldap://xxx.xxx.xxx.xxx"
BASEDN="dc=przyklad,dc=pl"
BINDDN="CN=user,CN=Users,DC=przyklad,DC=pl"
BINDPW="haslo"
FILTER="(&(sAMAccountName=*)(objectClass=user)(givenName=*))"
#FILTER="(&(sAMAccountName=*))"
FIELDS="sAMAccountName"
FILTER2="(&(sAMAccountName=*)(objectClass=user)(givenName=*))"
FIELDS2="sAMAccountName mail carLicense"

# CZYSZCZENIE ZAWARTOŚCI KARALOGU  /root/ldap_acc/
echo "Czyszczenie zawartosci katalogu ze starych wynikow ..."
rm -f $ADS_TMP $ADS_TMP2
sleep 3s

# POBIERANIE UZYTKOWNIKÓW Z AD i zapisanie ich w /root/ldap_acc/users.lst
echo -n "Odpytywanie AD... "
$LDAPSEARCH -x -H $LDAP_SERVER -b $BASEDN -D "$BINDDN" -w $BINDPW "$FILTER" $FIELDS | \
#  grep "@$DOMAIN_NAME" | \
   grep "sAMAccountName:" | \
  awk '{print $2}' | \
 cat  > $ADS_TMP
sleep 2s
echo "Znaleziono `cat $ADS_TMP | wc -l` użytkowników ($ADS_TMP)"
sleep 3s

#$LDAPSEARCH -x -H $LDAP_SERVER -b $BASEDN -D "$BINDDN" -w $BINDPW "$FILTER2" $FIELDS2 | \
#grep $i | \
cat > $ADS_TMP2
#echo "Znaleziono `cat $ADS_TMP2 | wc -l` wpisów ($ADS_TMP2)"
echo "Odpytuje o kolejnego użytkownika ...."
done
sleep 1s
echo "Wyniki zapisane w ($ADS_TMP2)"
------------------------------------END--------------------------

Brak komentarzy:

Prześlij komentarz