pirmdiena, 2009. gada 26. janvāris

How to query Active Directory users from Linux to get password expire information

BASH script:



#!/bin/bash
#
DEXP=`date -d '+1week' +%s`
DNOW=`date +%s`
DVEC=`date -d '-1week' +%s`
SERV=winADserv
AUTHF=cred.txt

# Ielasama visus lietotajvardus
wbinfo -u | while read User
do

# Katram lietotaajam skatamies paroles expireeshanaas laiku
rpcclient -A $AUTHF -c "queryuser $User" $SERV | grep "Password must change Time" | cut -f 2- -d, | while read Datums
do
if [[ `date -d "$Datums" +%s` -le $DEXP ]] && [[ `date -d "$Datums" +%s` -ge $DVEC ]]
then
echo $User `date -d "$Datums" +%F`
fi
# echo -e $Datums\\t$User

done
done


ldapsearch script




LDAPDC="dc=skola,dc=example,dc=com"
LDAPCN="cn=Administrator,ou=Users,$LDAPDC"
LDAPPW=VerySecretAdminPassword
SERV=winADserv
WARNPWAGE=80days

ldapsearch -x -D "$CN" -w $LDAPPW -h $SERV -b $LDAPDC "(&(sAMAccountName=*)(objectClass=user)(pwdLastSet<=$((`date -d -$WARNPWAGE +%s`+11644473600))0000000)(pwdLastSet>=$((`date -d -100days +%s`+11644473600))0000000)(sAMAccountType=805306368))"| grep sAMAccountName