Windows server 2012 R2 AD域密码过期邮件提醒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows server 2012 R2 AD域密码过期邮件提醒相关的知识,希望对你有一定的参考价值。

最近接领导指示,说要做一个域密码提醒的服务,这样会更人性化些,员工也就不必等过期了来找管理员重置。但是但是本人不懂脚本,就干脆从网上找了些链接做为参考,这里感谢此链接的作者 https://www.yeboyzq.com/windowsserver/632.html

以下是最终的过程

Import-Module Activedirectory

$alladuser=get-aduser -searchbase "ou=,ou=,dc=*,dc=com" -Filter ‘PasswordNeverExpires -eq "false" -and enabled -eq "true"‘ |ForEach{$_.SamAccountName}

$userlist = @()

$itmag = "@.com"

function sendmail($mailaddr,$body) #定义发送邮件的方法
{
$msg=New-Object System.Net.Mail.MailMessage
$msg.To.Add($mailaddr)
#$msg.Bcc.Add($itmag)
$msg.From = New-Object System.Net.Mail.MailAddress("@.com", "@.com",[system.Text.Encoding]::GetEncoding("UTF-8"))
$msg.Subject = "域账户密码即将过期提醒!"
$msg.SubjectEncoding = [system.Text.Encoding]::GetEncoding("UTF-8")
$msg.Body =$body
$msg.BodyEncoding = [system.Text.Encoding]::GetEncoding("UTF-8")
$msg.IsBodyhtml = $false
#$msg.Priority = [System.Net.Mail.MailPriority]::High
$client = New-Object System.Net.Mail.SmtpClient("smtp.office365.com")
$client.Port = 587
$client.EnableSsl = $true
$client.UseDefaultCredentials = $false
$client.Credentials=New-Object System.Net.NetworkCredential("@.com", "password")

try {$client.Send($msg)}  
catch [Exception]
{$($_.Exception.Message)  
$mailaddr  
}

}

foreach ($user in $alladuser)
{
$pwdlastset= Get-ADUser $user -Properties | %{$_.passwordlastset}
$pwdlastday=$pwdlastset.AddDays(90)
$now=get-date
$expire_days=($pwdlastday - $now).Days
$chineseusername= Get-ADUser $user -Properties
| %{$_.Displayname}
$pwdset = $pwdlastset.ToString(‘yyyy年MM月dd日 HH:mm:ss‘)
$pwdlast = $pwdlastset.AddDays(90).ToString(‘yyyy年MM月dd日 HH:mm:ss‘)
$tomailaddr = $user + "@huobi.com"
if($expire_days -lt 8 -and $expire_days -ge 0 )
{
#邮件正文
$Emailbody=
"Dear $chineseusername :
您的域账户密码即将在 $expire_days 天后过期 ,请您立即更改。
过期时间段参考:
上次密码设置时间: $pwdset
本次密码到期时间: $pwdlast

    此密码为有线联网、无线联网、×××、加域计算机的使用密码。

    更改密码请遵循以下原则:
    ○密码长度最少 10 位;
    ○强制密码历史 3个(不能使用之前最近使用的 3 个密码);
    ○密码可使用最长时间90天,90天以内可根据链接自行更改,超过90天请联系IT更改;
          北京IT:****   海南IT:****   深圳IT:****

    ○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)
    ○windows 更改:键盘按  Ctrl+Alt+Del
    ○MACbook更改请访问: 北京: http://
                            海南: http://
                            深圳:http://
    "        
sendmail $tomailaddr $Emailbody   
}
if($expire_days -lt 0){
     $Emailbody=
    "Dear $chineseusername :
    您的域账户密码已过期 ,请联系IT人员进行更改。
                上次密码设置时间: $pwdset
                本次密码到期时间: $pwdlast
   北京IT:****   海南IT:****   深圳IT:****
    "
sendmail $tomailaddr $Emailbody
}

}

最终邮件效果
即将过期
技术图片
已过期
技术图片

以上是关于Windows server 2012 R2 AD域密码过期邮件提醒的主要内容,如果未能解决你的问题,请参考以下文章

windows server 2012 r2 如何上传网站

windows server 2012 r2 中怎样开启文件和块级重复数据删除

如何去除 windows server 2012 r2 自动锁定

windows server 2012 r2(GUI)密码遗失处理

windows server 2012 r2 怎么设置开机自动启动

windows server 2012 r2怎么安装