码迷,mamicode.com
首页 > 其他好文 > 详细

检测AD账户密码过期时间并通知

时间:2014-05-10 09:05:44      阅读:2944      评论:0      收藏:0      [点我收藏+]

标签:管理员   检测   email   密码   信息   

我记得在坛子里流传这一份用PS1.0版本实现此功能的脚本本来想直接使用,但居然发现不会用呵呵。

后来一想直接写一个得了,此脚本主要实现了两个功能 :

一能判断账户密码的过期时间并通过邮件通知到账户,二是将这些即将过期的账户信息累计通知到管理员。

############################################
#Author:Lixiaosong
#Email:lixs@ourgame.com;lixiaosong8706@gmail.com
#For:检测AD密码过期时间并邮件通知
#Version:1.0
##############################################
Import-Module Activedirectory
$alladuser=get-aduser -searchbase "OU=IT,DC=contoso,DC=com" -filter *  | %{$_.Samaccountname}
$userlist = @()
#################################################
#检测AD密码过期时间并邮件通知相应账户
##################################################
foreach ($user in $alladuser){
#密码最后一次更改时间
$pwdlastset=Get-ADUser $user -Properties * | %{$_.passwordlastset}
#密码的过期时间
$pwdlastday=($pwdlastset).adddays(90)
#当前时间
$now=get-date
#判断账户是否设置了永不过期
$neverexpire=get-aduser $user -Properties * |%{$_.PasswordNeverExpires}
#距离密码过期的时间
$expire_days=($pwdlastday - $now).Days
#判断过期时间天小于15天的并且没有设置密码永不过期的账户
if($expire_days -lt 15 -and $neverexpire -like "false" ){
    $chineseusername= Get-ADUser $user  -Properties * | %{$_.Displayname}
    #邮件正文
    $Emailbody=
"亲爱的 $chineseusername 同学 :
    您的域账户和邮箱密码即将在 $expire_days 天后过期, $pwdlastday 之后您将无法登陆计算机和收发邮件,请您尽快更改。
    重置密码过程请遵循以下原则:
    ○密码长度最少 8 位;
    ○密码可使用最长时间 90天,过期需要更改密码;
    ○密码最短使用 1天( 1 天之内不能再次修改密码);
    ○强制密码历史 3个(不能使用之前最近使用的 3 个密码);
    ○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)

"
Send-MailMessage -from "it@contoso.com" -to "tom@contoso.com" -subject "您的账户密码即将过期" -body $Emailbody -Attachments D:\script\如何更改域用户密码.pptx -smtpserver mail.contoso.com -Encoding ([System.Text.Encoding]::UTF8)
#############################################
#查找账户的密码过期时间并发送至管理员账户
#############################################
$username=Get-ADUser $user  -Properties *
$userobject=New-object psobject
$userobject | Add-Member -membertype noteproperty -Name 用户名            -value $username.displayname
$userobject | Add-Member -membertype noteproperty -Name 邮箱              -Value $username.mail
$userobject | Add-Member -membertype noteproperty -Name 最后一次密码设置  -Value $username.Passwordlastset
$userobject | Add-Member -membertype noteproperty -Name 密码过期时间      -Value $pwdlastday
$userobject | Add-Member -membertype noteproperty -Name 距离密码过期天数  -Value $expire_days
$userlist+=$userobject
}
}
$EmailbodyHTML=$userlist|
sort-object 距离密码过期天数 |
ConvertTo-Html |
Out-String
Send-Mailmessage -from  "it@contoso.com" –to “itmanager@contoso” -Bodyashtml $EmailbodyHTML -Subject "管理员通知" -smtpserver mail.contoso.com -Encoding ([System.Text.Encoding]::UTF8)

实现的结果:

1

bubuko.com,布布扣

2

bubuko.com,布布扣

检测AD账户密码过期时间并通知,布布扣,bubuko.com

检测AD账户密码过期时间并通知

标签:管理员   检测   email   密码   信息   

原文地址:http://lixiaosong.blog.51cto.com/705126/1409113

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!