加密部分参考:http://www.bubuko.com/infodetail-1846894.html

首先将在某台主机上上建立一个share folder,设置权限为Everyone读取,里面将存储加密后的密码文件,文件命名为Password.txt。

新建一个加密的powershell文件,内容如下:用于把密码加密存储至Password.txt


$File = "\\SHSV2018\SharePath\Password.txt"
[Byte[]] $key = (1..16)
$Password = "P@ssword" | ConvertTo-SecureString -AsPlainText -Force
$Password | ConvertFrom-SecureString -key $key | Out-File $File

然后我们就可以直接在所需要调用密码的地方读取Password.txt,具体参见标红的部分

#leader的需求是,AD密码过期15天之前通过邮件通知用户,告知还有多少天密码就要过期了

#由于不是特别熟悉powershell,所以会写的比较笨,不过功能是实现了

#我们设置的是用户密码90天就过期

$File = "\\SHSV2018\SharePath\Password.txt"
[Byte[]] $key = (1..16)
$smtpPassword=Get-Content $File | ConvertTo-SecureString -Key $key

$user=Get-ADUser -searchbase 'OU=XX,DC=XX,DC=XX,DC=XX' -Filter * -Properties * |Select-Object displayname,passwordlastset,mail #这边的ou和DC填自己的,获取域账户所需的信息
$today=Get-Date #获取今天的日期
$today_75=$today.AddDays(-75) #获取75天的日期
$today_90=$today.AddDays(-90) #获取90天的日期
$Mailtouser=$user |Where-Object {$_.passwordlastset -le $today_75 -and $_.passwordlastset -ge $today_90 -and $_.passwordlastset -gt 0 -and $_.displayname -ne 'user1' -and $_.displayname -ne 'user2'} #获取需要邮件通知的用户,通过过期时间排除,其中也排除了user1和user2这样的特殊用户
$Mailusernum=$Mailtouser.Count #这样账户的总数
$MailtoAddress=$Mailtouser.mail #这些账户的mail邮箱
$Mailtouser_ed=$user |Where-Object {$_.passwordlastset -lt $today_90  -and $_.passwordlastset -gt 0 -and $_.displayname -ne 'user1' -and $_.displayname -ne 'user2'} #这是获取已经过期了的账户,其中也排除了user1和user2这样的特殊用户
$Mailusernum_ed=$Mailtouser_ed.Count #这样账户的总数
$MailtoAddress_ed=$Mailtouser_ed.mail #这些账户的mail邮箱
$smtpServer="smtp.exmail.qq.com" #你的smtp服务器,楼主的是qq
$smtpUser="xxx@qq.com" #账户
#$smtpPassword="password"#密码 注释掉
$mail=New-Object System.Net.Mail.MailMessage
$MailAddress="xxx@qq.com" #发件人地址
$mail.From=New-Object System.Net.Mail.MailAddress($MailAddress)
$mail.Subject="主题"
$smtp=New-Object System.Net.Mail.SmtpClient -ArgumentList $smtpServer
$smtp.Credentials=New-Object System.Net.NetworkCredential -ArgumentList $smtpUser,$smtpPassword
for ($i=0;$i -lt $Mailusernum;$i++) #循环并发送邮件----还有多少天过期
{
$mail.To.Add($MailtoAddress[$i])
$days_array=((New-TimeSpan $Mailtouser.passwordlastset[$i] -end $today_75).Days) #获取还有多少天过期
$mail.Body="你的密码还有$days_array 天过期了"
$smtp.Send($mail) #发送邮件
$mail.To.Clear()

}

for ($i=0;$i -lt $Mailusernum_ed;$i++) #循环并发送邮件----已经过期多少天了
{
$mail.To.Add($MailtoAddress_ed[$i])
$days_array=((New-TimeSpan $Mailtouser_ed.passwordlastset[$i] -end $today_90).Days)#获取你过期多少天了
$mail.Body="你的密码已经过期 $days_array 天了"
$smtp.Send($mail)
$mail.To.Clear()
}

AD账号密码过期邮件提醒-powershell实现--密码加密(新增)相关推荐

  1. AD域密码过期邮件提醒

    本文使用了PowerShell脚本实现提醒功能. 一.因为发送邮件功能需要验证用于发送邮件的账号密码,为了安全使用下面的命令对输入的密码进行加密并保存至文本,这里需要注意的是生成的密码文件仅能在本机使 ...

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

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

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

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

  4. oracle禁止修改密码,Oracle 用户密码过期后不允许修改密码的示例代码

    --本人是初学者,不知道还有没有更好的方法create table PASSWD_CHANGED ( USER_NAME VARCHAR2(20), OLD_PASSWD VARCHAR2(100), ...

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

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

  6. mysql密码过期解决办法,mysql密码永不过期

    1.进入到数据库服务器,windows需要进入到bin目录,linux应该是任意目录即可(但需要账号有权限).以windows为例:C:\Program Files\MySQL\MySQL Serve ...

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

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

  8. oracle用户密码不被锁,Oracle用户密码过期和用户被锁解决方法【转】

    [原因/触发因素] 确定是由于Oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. [影响和风险] 影响 密码过期后, ...

  9. linux密码修改时间,linux 查看、修改用户及密码过期时间(示例代码)

    WARNING: Your password has expired. Password change required but no TTY available. 提示密码过期, 设置新用户密码的过 ...

最新文章

  1. Go 编译的可执行文件是否有动态库链接?
  2. html提交表单到Servlet
  3. 深度学习(二十三)Maxout网络学习-ICML 2013
  4. 用python让excel飞起来 pdf_老外用100个巨型吹风机, 想要靠它们飞起来, 你猜结果怎样...
  5. python 文本向量化_Python文本特征抽取与向量化算法学习
  6. WPF in Visual Studio 2010
  7. 程序设计爬楼梯问题_楼梯案例:解决楼梯问题的C ++程序
  8. Spring中利用java注解声明切面
  9. java实验指导答案华软_Java核心编程技术实验指导教程
  10. Android 之 网络连接(Connecting to the Network)
  11. PDF预览之PDFObject.js总结
  12. html表格制作练习
  13. 为什么ppt图形卡配置不正确_PPT常见问题解决方法,PPT检测到图形卡可能配置不正确怎么办?...
  14. 通俗易懂学Docker
  15. A Game of Thrones(49)
  16. Dynamic DMA mapping Guide
  17. 算一串数字的entropy_什么是熵的计算机科学定义?
  18. 什么 是模型的记忆力!
  19. C#学习(十五)——窗体控件用法大全
  20. python 外星人游戏怎么打开_Python外星人入侵游戏开发—创建游戏窗口

热门文章

  1. 微信小程序收藏按钮五角星星图标动画效果实现
  2. 《自我分析》卡伦·霍尼阅读笔记1
  3. 音频 ----- DRC
  4. 如何将.crt和.key转换为.jks证书
  5. Matlab快速创建矩阵的方法(创建特殊矩阵)
  6. VS2019安装教程(C语言)
  7. php 电梯程序,干货:电梯调试流程内容!
  8. 标量、向量、矩阵求导
  9. el-table 怎么合并相同单元格
  10. java未来发展潜力_Java语言未来是否还有发展前景