以下是正式的Powershell脚本内容,相关LDAP参数根据实际对照修改即可试用。
请将该powershell脚本在DC上配置计划任何,每天运行一次即可。
红色字体请修改为自己需要的变量。
Import-Module Activedirectory
$alladuser=get-aduser -searchbase "ou=users,DC=cloud700,dc=com" -filter * | %{$_.Samaccountname}
$userlist = @()
echo $alladuser
#echo $userlist
$itmag = "it@cloud700.com" #IT管理员的邮件地址
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("it@cloud700.com", "IT-Admin",[system.Text.Encoding]::GetEncoding("UTF-8")) #发件人
$msg.Subject = "AD密码有效期提醒"
$msg.SubjectEncoding = [system.Text.Encoding]::GetEncoding("UTF-8")
$msg.Body =$body
$msg.BodyEncoding = [system.Text.Encoding]::GetEncoding("UTF-8")
$msg.IsBodyHtml = $false#发送html格式邮件
#$msg.Priority = [System.Net.Mail.MailPriority]::High
$client = New-Object System.Net.Mail.SmtpClient("smtp.cloud700.com") #配置smtp服务器
$client.Port = 465#指定smtp端口
$client.EnableSsl = $true #带ssl功能的smtp服务器
$client.UseDefaultCredentials = $false
$client.Credentials=New-Object System.Net.NetworkCredential("admin@cloud700.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
#判断账户是否设置了永不过期
$neverexpire=get-aduser $user -Properties * |%{$_.PasswordNeverExpires}
#距离密码过期的时间
$expire_days=($pwdlastday - $now).Days
#判断过期时间天小于10天,大于-5天(即已过期5天)的并且没有设置密码永不过期的账户
if($expire_days -lt 10 -and $expire_days -gt -5 -and $neverexpire -like "false" )
{
$chineseusername= Get-ADUser $user -Properties * | %{$_.Displayname}
#邮件正文
$Emailbody=
"Dear $chineseusername :
您的邮箱密码即将在 $expire_days 天后过期,请您尽快更改。
更改密码请遵循以下原则:
○密码长度最少 8 位;
○密码可使用最长时间 90天,过期需要更改密码;
○密码最短使用 1天( 1 天之内不能再次修改密码);
○强制密码历史 3个(不能使用之前最近使用的 3 个密码);
○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)
"
$tomailaddr = $user + "@cloud700.com"
#echo $tomailaddr
sendmail $tomailaddr $Emailbody
}
}
#脚本结束
已经有 0 条群众意见