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

  

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

  

以下是最终的过程

  

Import-Module Activedirectory   

$ alladuser=get-aduser -searchbase“ou=, ou=, dc=*, dc=com"过滤器的PasswordNeverExpires eq“false"——情商启用“true"”| ForEach {$ _.SamAccountName}

  

$ userlist=@ ()

  

$ itmag=?强> @ .com"

  

sendmail函数(mailaddr,身体美元)#定义发送邮件的方法
{
$味精=新对象System.Net.Mail。MailMessage
msg.To.Add美元($ mailaddr)
# msg.Bcc.Add美元($ itmag)
$味精。从=新对象System.Net.Mail.MailAddress(“<强> @ .com",“<强> @ .com", [system.Text.Encoding]:: GetEncoding (“UTF-8"))
美元味精。主题=坝蛘嘶苈爰唇谔嵝?“
美元味精。SubjectEncoding=[system.Text.Encoding]:: GetEncoding (“UTF-8")
美元味精。身体身体
=$ $味精。BodyEncoding=[system.Text.Encoding]:: GetEncoding (“UTF-8")
美元味精。IsBodyHtml假
=$ # $味精。优先级=[System.Net.Mail。MailPriority]::高
$客户=新对象System.Net.Mail.SmtpClient (“smtp.office365.com")
美元客户端。端口=587美元
客户端。EnableSsl=true
美元客户端。UseDefaultCredentials=假
客户美元。凭证=新对象System.Net.NetworkCredential(“<强> <强> @ .com",“password")

  
 <代码>尝试{$ client.Send (msg)}
  抓住(异常)
  {$ (_.Exception.Message美元)
  mailaddr美元
  } 
  

}   

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

  
 <代码>此密码为有线联网,无线联网,×××,加域计算机的使用密码。
  
  更改密码请遵循以下原则:
  ○密码长度最少10位;
  ○强制密码历史3个(不能使用之前最近使用的3个密码);
  ○密码可使用最长时间90天,90天以内可根据链接自行更改,超过90天请联系它更改;
  北京:* * * *海南:* * * *深圳:* * * *
  
  ○密码符合复杂性需求(大写字母,小写字母,数字和符号四种中必须有三种,且密码口令中不得包括全部或部分用户名)
  ○windows更改:键盘按Ctrl + Alt + Del
  ○MACbook更改请访问:北京:http://海南:http://深圳:http://?
  sendmail tomailaddr Emailbody美元
  }
  如果($ expire_days lt 0) {
  $ Emailbody=扒装腸hineseusername美元:
  您的域账户密码已过期,请联系这人员进行更改。
  上次密码设置时间:pwdset美元
  本次密码到期时间:pwdlast美元
  北京:* * * *海南:* * * *深圳:* * * *
  ”
  sendmail tomailaddr Emailbody美元
  } 
  

}   

最终邮件效果
即将过期
 Windows server 2012 R2 AD域密码过期邮件提醒”> <br/>已过期<br/> <img src=

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