Export CSV des comptes

Il existe une commande zmprov pour exporter la liste totale des comptes mais on ne récupère que les adresses email…

Voici un script qui exporte les comptes « complets » : prénom, nom, nom affiché, adresse email.

#!/bin/bash

clear
echo -e « ############################################################################## »
echo -e « # Zimbra getuserCSV.sh ver 0.1 # »
echo -e « ############################################################################## »

# /* Paramètres */
echo «  »
echo -n « Nom de domaine (ex : zimbra.com) :  »
read NOM_DOMAINE
echo -n « Nom du fichier export (ex : /tmp/utilisateurs.csv) :  »
read NOM_FICHIER

rm -f $NOM_FICHIER

touch $NOM_FICHIER

# Vérification version ZCS
VERSION=`su – zimbra -c ‘zmcontrol -v’`;
ZCS_VER= »/tmp/zcsver.txt »

# Récupération password LDAP
ZIMBRA_LDAP_PASSWORD=`su – zimbra -c « zmlocalconfig -s zimbra_ldap_password | cut -d ‘ ‘ -f3″`
LDAP_MASTER_URL=`su – zimbra -c « zmlocalconfig -s ldap_master_url | cut -d ‘ ‘ -f3″`

touch $ZCS_VER
echo $VERSION > $ZCS_VER

echo -e « Récupération utilisateurs »

grep « Release 5. » $ZCS_VER
if [ $? = 0 ]; then
USERS=`su – zimbra -c ‘zmprov gaa’`;
fi

grep « Release 6. » $ZCS_VER
if [ $? = 0 ]; then
USERS=`su – zimbra -c ‘zmprov -l gaa’`;
fi

grep « Release 7. » $ZCS_VER
if [ $? = 0 ]; then
USERS=`su – zimbra -c ‘zmprov -l gaa’`;
fi

echo -e « Traitement utilisateurs »
for ACCOUNT in $USERS; do
NAME=`echo $ACCOUNT`;
DOMAIN=`echo $ACCOUNT | awk -F@ ‘{print $2}’`;
ACCOUNT=`echo $ACCOUNT | awk -F@ ‘{print $1}’`;
ACC=`echo $ACCOUNT | cut -d ‘.’ -f1`

if [ $NOM_DOMAINE == $DOMAIN ] ;
then
OBJECT= »(&(objectClass=zimbraAccount)(mail=$NAME)) »
dn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep dn:`
displayName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep displayName: | cut -d ‘:’ -f2 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`
givenName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep givenName: | cut -d ‘:’ -f2 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`
#userPassword=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep userPassword: | cut -d ‘:’ -f3 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`
cn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep cn: | cut -d ‘:’ -f2 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`
#initials=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep initials: | cut -d ‘:’ -f2 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`
sn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep sn: | cut -d ‘:’ -f2 | sed ‘s/^ *//g’ | sed ‘s/ *$//g’`

if [ $ACC == « admin » ] || [ $ACC == « wiki » ] || [ $ACC == « galsync » ] || [ $ACC == « ham » ] || [ $ACC == « spam » ]; then
echo « Utilisateur système non traité : $NAME »
else
echo « $NAME;’$displayName’;’$givenName’;’$sn' » >> $NOM_FICHIER
fi
else
echo « Utilisateur $NAME non traité »
fi

done

echo -e « Tous les comptes ont été exportés dans $NOM_FICHIER… »

Ce contenu a été publié dans Zimbra. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire