本文使用了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 -gt "0"){
$DN = Get-ADUser $User -Properties Displayname | % {$_.Displayname}
$EmailAddress = Get-ADUser $User -Properties mail | % {$_.mail}
$EmailSubject = "您的密码即将过期"
#编写邮件正文,可以使用html编辑器进行编辑,需要注意的是HTML源代码一定要粘贴在@" "@中间
$Emailbody =
@"
<p>
    <span style="font-size:16px;font-family:&quot;"><strong>$DN</strong></span><span style="font-size:16px;font-family:&quot;">您好,</span> 
</p>
<p class="MsoNormal" align="left" style="text-align:justify;font-size:10.5pt;font-family:Calibri, sans-serif;">
    <span style="font-size:16px;font-family:&quot;">您的域密码将在</span><span style="font-size:16px;color:#E53333;font-family:&quot;"><strong>$ExpireDays</strong></span><span style="font-size:16px;font-family:&quot;">天后过期,请及时更改。</span>
</p>
<p>
    <br />
</p>
"@
#发送邮件
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进行测试,确认无误之后再做成任务计划:

AD域密码过期邮件提醒相关推荐

  1. AD账号密码过期邮件提醒-powershell实现--密码加密(新增)

    加密部分参考:http://www.bubuko.com/infodetail-1846894.html 首先将在某台主机上上建立一个share folder,设置权限为Everyone读取,里面将存 ...

  2. java 判断域密码到期提醒_域帐号密码过期邮件提醒

    思路,通过AD工具取得全部OU下人员工号.邮箱地址,再检测工号多少天没修改密码,超过设定的天数,就执行发送邮件# -*- coding:utf-8 -*- import smtplib import  ...

  3. 域帐号密码快过期邮件提醒

    社会的快速发展,企业的规模也随之变大,这样企业的人数自然也增多,由于人数的众多,为了便于管理所以用起了域环境,但是根据某些企业的性质,部分员工也可能不登陆域帐号,以至密码过期,这样,时间一长,域帐号的 ...

  4. AD域用户密码过期-用户如何实现AD域密码自助修改或重置?

    工作中我们经常会遇到AD域密码过期的情况,由于没有及时对AD域密码进行修改导致AD域密码过期,用户不能登录.AD域密码为什么会过期呢?这与IT管理员的AD域密码策略有关.为了防止恶意者进行密码攻击,I ...

  5. AD域帐户密码过期,终端802.1x认证自动重连导致AD账号被锁,员工无法上网、办公怎么办?

    搭建了微软 Active Directory(AD)或 OpenLDAP 的企业,通常会让员工使用 AD 域账号或OpenLDAP 账号密码登录电脑终端.OA.VPN.VDI或进行网络接入 802.1 ...

  6. php 修改域密码,Self Service Password AD域密码自助重置服务配置指引

    Self Service Password AD域密码自助重置服务配置指引 一.安装Self Service Password 1.到官网获取安装包或安装方法 2.dev为开发者版本,stable为最 ...

  7. 为Office365增加密码过期自动提醒功能

    最近有人和我反应,无法查看所有员工的Office365的密码过期时间.最好可以批量查看,如果能在过期前几天发个提醒邮件就更好了. $pw = ConvertTo-SecureString 'your_ ...

  8. QQ邮箱测试域用户密码过期邮件提示

    Import-Module ActiveDirectory #定义邮件发送参数 $SMTPServer = "smtp.qq.com" #使用了加密端口,465端口如果发送不成功, ...

  9. 搭建exchange邮件服务器一定要ad域么?_邮件伪造之SPF绕过的5种思路

    SMTP(SimpleMail Transfer Protocol) 即简单邮件传输协议,正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明 ...

最新文章

  1. 问价已损坏 文件服务器,由于检查点文件 (.chk) 丢失或已损坏,无法打开数据库...
  2. 使用antd报less的错误
  3. 4412 GPIO读 和 ioremap控制GPIO寄存器
  4. mysql sum 为 0 的解决方法
  5. 题目1256:找出两个只出现了一次的数字
  6. 【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )
  7. 数据库规范设计说明书(参考阿里开发规范)
  8. PowerDesigner版本控制器设置权限
  9. DbHelper数据库通用类使用方法
  10. jmeter性能测试实例_实例教程:手把手教你Jmeter性能测试
  11. macOS Big Sur的小部件使用技巧
  12. paip.51cto HTML转码规则
  13. 免费中文Python电子书
  14. LinkedIn领英帐号被封(被限制登录)的解决办法
  15. 民建李汉宇:运用大数据为监察体制改革插上科技翅膀
  16. C语言中简单冒泡排序不花里胡哨
  17. 【考研数学一】微分方程专讲(初步)
  18. 应该怎么提升4G工业路由器的无线信号?
  19. 百度地图转高德地图(火星坐标)高德地图(火星坐标)转百度地图
  20. 各大门户免费登录入口

热门文章

  1. 微信小程序控制三轮全向排爆小车
  2. matlab标准化处理Excel数据,matlab一组数据归一化后数据 | 在excel表格中如何对数据进行归一化处理...
  3. 【PHP】php多态
  4. java反射 getMethod_Java反射之Method Class.getMethod(String name, Class?... parameterTypes)
  5. 2022 安询杯 Babyphp
  6. MySQL表分区详解
  7. 互联网快讯:喜茶回应上市;掌门教育、猿辅导转型素质教育
  8. joomla首页指定单独的模板教程
  9. python手机安装教程视频_python安装教程有没有?最好是视频的【安卓系统安装python环境】...
  10. Linux shuf命令