我想修改Linux登录脚本,以便在用户登录时,会在ActiveDirectory上通知他们的accountExpires日期,随着日期越来越近(60,30,15,5,1天,等等。)。
有两件事让我感到悲伤。我希望ldapsearch只输出“accountExpires:######”,我需要将其从100纳秒间隔 - 从1/1/1601 64位格式转换为日 - 月 - 年格式。
帮助!
答案 0 :(得分:0)
好的,经过大量的反复试验后,我想出来了......
#!/bin/bash
accountExpires=$(ldapsearch -d 0 -LLL -v -b "DC=<yourdomain>,DC=<yourdomainextension>" sAMAccountName=$(whoami) 2> /dev/null | grep -oP 'accountExpires: \K.*' | tail -n 1)
if [ accountExpires = "9223372036854775807" ]; then
echo "Account never expires."
else
timeInSeconds=$((( accountExpires / 10000000 )))
interval1601to1970=$((( 0 - $(date --date=1601-01-01 +%s) )))
timeSince1970=$((( $timeInSeconds - $interval1601to1970 )))
echo "Your account expires on: $(date --date @"$timeSince1970")"
fi