在AD帐户登录时警告用户延长日期

时间:2017-02-27 13:40:15

标签: active-directory

我想修改Linux登录脚本,以便在用户登录时,会在ActiveDirectory上通知他们的accountExpires日期,随着日期越来越近(60,30,15,5,1天,等等。)。

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

帮助!

1 个答案:

答案 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