ldapsearch - comment afficher "lastlogontimestamp" et convertir Windows lastlogontimestamp à ce jour dans bash

Je souhaite rechercher dans Active Directory des utilisateurs inactifs qui n'ont pas de connexion pendant x jours / mois. J'ai une telle requête ldapsearch :

ldapsearch -h domain.test -p 389 -D "cn=login,ou=test,dc=domain,dc=test" -w "passwd" -s sub -b "ou=Test,dc=domain,dc=test" "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))"

Cela me donne la liste de tous les utilisateurs inactifs du domaine.test avec tous les attributs.

Je voudrais ajouter un filtre pour rechercher des utilisateurs qui n'ont pas de connexion pendant x jours / mois, et ce serait génial si le résultat était la liste des noms de compte SAM (utilisateur inactif et lastLogonTimestamp> par exemple 3 mois). Je suis conscient que LastLogonTimestamp n'est pas le temps réel de la dernière connexion utilisateur, mais dans ce cas, ce n'est pas si important.

EDIT: maintenant, je dois seulement savoir s'il existe un moyen d'afficher un attribut comme "Lastlogontimestamp" dans la sortie de la requête ldapsearch ci-dessus?

RÉPONSE : L'attribut lastLogonTimestamp n'a pas été défini pour chaque objet dans la sortie de la requête ldapsearch ci-dessus. Je ne l'ai pas remarqué. Alors grep l'a affiché :

ldapsearch -h domain.test -p 389 -D "cn=login,ou=test,dc=domain,dc=test" -w "passwd" -s sub -b "ou=Test,dc=domain,dc=test" "(&(objectCategory=person)(objectClass=user)(userAccountCont‌​rol:1.2.840.113556.1‌​.4.803:=2))" | grep -i lastlogontimestamp 

EDIT: Pour convertir Windows lastLogonTimestamp à ce jour, j'ai utilisé :

while read -r line;
    do
    let "ts = ($line / 10000000) - 11644473600" && echo $ts >> linux_timestamp;
    date -d @$ts +'%Y%m%d' >> linux_date;
    done < users_lastlogontimestamp

Tout conseil très apprécié.

demandé sur