We have a policy where all accounts (user, etc.) expire in X days..

I wanted to create a notification script to notify when the account is due to expire.

Comments, etc. are welcome.

code:
 
BREAK ON
CLS

; -- Ref. http://kixtart.org/board/Forum2/HTML/000133.html for date routine

IF Left(@kix,1) < 4
?"This script requires Kixtart 4.x"
SLEEP 2
EXIT
ELSE

$ldomain = @domain
$lstrusername = "servicesql"
$mailhost = "smtp.server.com"
$adminrecpt = "recipient@@server.com"

$userobj = GetObject("WinNT://$LDomain/$lstrUserName")

;$UserObj = GetObject("WinNT://" + $DomainString + "/" + $lstrUserName)

$pwexpire = $userobj.passwordexpirationdate
$dtcalc = $pwexpire = @date

?"UserAuthor: " + $userobj.name
?"UserPasswordExpires: " + $pwexpire

$tt = $pwexpire

$pwdate = substr($tt,1,10)

$pwyear = val(substr($tt,1,4))
$pwmonth = val(substr($tt,6,2))
$pwdate = val(substr($tt,9,2))

$nowyear = @year
$nowmonth = @monthno
$nowdate = @mdayno

IF $pwyear <> $nowyear
$nowmonth = $nowmonth + (12 * ($nowyear - $pwyear))
ENDIF

IF $pwmonth <> $nowmonth
$nowdate = $nowdate + 30
ENDIF

?$nowdate - $pwdate

IF ($nowdate - $pwdate) <= 2
? "Password Change required within 2 days, please change"
SHELL 'postie.exe -host:$MailHost -to:$AdminRecpt -from:"ServiceAccountChg" -s:"Password Change" -msg:"The service account: $lstrUserName needs to be changed."'
ELSE
? "Password older than 2 Days, no action is needed"
ENDIF
ENDIF

Cheers!

- Kent

[ 30 May 2002, 19:05: Message edited by: kdyer ]
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's