Active directory 在AD accountExpires日期登录时警告用户

Active directory 在AD accountExpires日期登录时警告用户,active-directory,Active Directory,我想修改Linux登录脚本,这样当用户登录时,他们将在ActiveDirectory上收到帐户过期日期的通知,随着日期的临近(60、30、15、5、1天等),警告会越来越严重 有两件事让我感到悲伤。我希望ldapsearch只输出“accountExpires:#######”,我需要将其从100纳秒间隔的1/1/1601 64位格式转换为日-月-年格式 救命啊 好吧,我经过多次尝试和错误才发现 #!/bin/bash accountExpires=$(ldapsearch -d 0 -LLL

我想修改Linux登录脚本,这样当用户登录时,他们将在ActiveDirectory上收到帐户过期日期的通知,随着日期的临近(60、30、15、5、1天等),警告会越来越严重

有两件事让我感到悲伤。我希望ldapsearch只输出“accountExpires:#######”,我需要将其从100纳秒间隔的1/1/1601 64位格式转换为日-月-年格式


救命啊

好吧,我经过多次尝试和错误才发现

#!/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
#/bin/bash
accountExpires=$(ldapsearch-d0-LLL-v-b“DC=,DC=“sAMAccountName=$(whoami)2>/dev/null | grep-oP”accountExpires:\K.*tail-n1)
如果[accountExpires=“9223372036854775807”];然后
echo“帐户永不过期。”
其他的
timeInSeconds=$((accountExpires/10000000)))
从1601年到1970年的时间间隔=$((0-$(日期--日期=1601-01-01+%s)))
timeSince1970=$(($TimeUnseconds-$Interval1601到1970)))
echo“您的帐户将于:$(日期--date@“$timeSince1970”)到期”
fi