欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

AD域密码过期邮件提醒

时间:2023-05-22

本文使用了PowerShell脚本实现提醒功能。

一、因为发送邮件功能需要验证用于发送邮件的账号密码,为了安全使用下面的命令对输入的密码进行加密并保存至文本,这里需要注意的是生成的密码文件仅能在本机使用,拷贝到其他电脑会失效:

Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString | Out-File "D:pwd.txt"

二、下面编写PowerShell脚本,这里需要注意的是邮件正文可以使用html代码编写,并且可以引入变量,内容较多所以贴在下面供参考:

############################################

import-Module Activedirectory
#定义邮件发送参数
$SMTPServer = "这里填写发送服务器"
#使用了加密端口,465端口如果发送不成功,可以尝试使用587端口,这里不介绍465和587端口的区别,有兴趣的可以自行百度查询
$SMTPPort = "587"
$SMTPAccount = "这里填写用于发送邮件的账号,一般是邮件地址"
$SecureFile = "D:pwd.txt"
$SecurePwd = Get-Content $SecureFile | ConvertTo-SecureString
$SMTPCred = New-Object System.Management.Automation.PSCredential($SMTPAccount,$SecurePwd)
#查询指定OU符合条件的用户,这里筛选了未设置密码永不过期以及账号是启用状态的用户
$AllUser = Get-ADUser -searchbase "OU=xxx,DC=xx,DC=xx" -Filter 'PasswordNeverExpires -eq "false" -and enabled -eq "true"' | % {$_.SamAccountName}
#进入循环
foreach ($User in $AllUser){
#获取上次设置密码时间
$PwdLastset = Get-ADUser $User -Properties passwordlastset | % {$_.passwordlastset}
#计算过期日期,这里是180天过期
$PwdLastday = ($PwdLastset).AddDays(180)
#获取计算机当前日期,确保运行此脚本的计算机日期准确
$Now = Get-Date
#计算密码还剩多少天过期
$ExpireDays = ($PwdLastday - $Now).Days
#执行if语句,这判断过期日期是否小于等于7并且大于等于0,如果为真则发送邮件
if($expire_days -le "7" -and $expire_days -ge "0"){
$DN = Get-ADUser $User -Properties Displayname | % {$_.Displayname}
$EmailAddress = Get-ADUser $User -Properties mail | % {$_.mail}
$EmailSubject = "您的密码即将过期"
#编写邮件正文,可以使用html编辑器进行编辑,需要注意的是HTML源代码一定要粘贴在@" "@中间
$Emailbody =
@"


    $DN您好, 



    您的域密码将在$ExpireDays天后过期,请及时更改。



    


"@
#发送邮件
Send-MailMessage -SmtpServer $SMTPServer -Port $SMTPPort -UseSsl -From $SMTPAccount -To $EmailAddress -Subject $EmailSubject -Bodyashtml $Emailbody -Credential $SMTPCred -Encoding ([System.Text.Encoding]::UTF8)
}
}

############################################

以上脚本写完了可以先测试,推荐使用Windows Powershell ISE 编写,避免编码问题导致脚本无法运行,先使用临时OU进行测试,确认无误之后再做成任务计划:

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。