0

我的帖子

个人中心

设置

  发新话题
在AD域上设置了用户必须180修改一次密码,现在想让密码过期之前,邮件通知大家修改密码,防止使用笔记本登陆outlook的用户,因为密码没有修改而无法使用exchange邮箱的问题。以下是脚本 PS(感谢51CTO-桩子尚品)但是总是有报错
===========================================================================
#51CTO-桩子尚品
Import-Module Activedirectory
#检索出所有OU里不包含设置了永不过期及禁用的账户
$alladuser=Get-ADUser -Filter 'PasswordNeverExpires -eq "false" -and enabled -eq "true"' |ForEach{$_.SamAccountName}
$userlist = @()
#################################################
#检测AD密码过期时间并邮件通知相应账户
##################################################
foreach ($user in $alladuser){
#密码最后一次更改时间
$pwdlastset=Get-ADUser $user -Properties * |ForEach{$_.passwordlastset}
#密码的过期时间
$pwdlastday=($pwdlastset).adddays(90)
#当前时间
$now=get-date
#距离密码过期的时间
$expire_days=($pwdlastday - $now).Days
#判断过期时间天小于15天的账户
if($expire_days -lt 15 ){
    $chineseusername= Get-ADUser $user  -Properties * |ForEach{$_.Displayname}
#邮件正文
    $Emailbody=
"<font color=green>亲爱的 $chineseusername : <br>
         您的域账户和邮箱密码即将在<font color=red><font size=3><strong>$expire_days</strong></font></font>天后过期,<font color=red><font size=3><strong>$expiredate</strong></font></font>之后您将无法登陆计算机和收发邮件、访问共享、打印,请您尽快更改。<br>
         重置密码过程请遵循以下原则:<br>
         ○密码长度最少 8 位<br>
         ○密码可使用最长时间 90天,过期需要更改密码<br>
         ○密码最短使用 1 天(可以随时再次修改密码)<br>
         ○强制密码历史 3 个(不能使用之前使用过的 3 个密码)<br>
         ○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)<br></font>
     修改密码方法如下:


"
#SMTP发信验证
$anonUser = "it@domain.com.cn.com.cn"
$anonPass = ConvertTo-SecureString "xxxxx" -AsPlainText -Force
$anonCred = New-Object System.Management.Automation.PSCredential($anonUser, $anonPass)
#发送邮件
Send-MailMessage -To "$user@domain.com.cn.com.cn" -Subject "您的域账户密码即将过期,请尽快更改" -Bodyashtml $Emailbody -From "it@domain.com.cn.com.cn" -Credential $anonCred -SmtpServer 192.168.10.40 -Port 25 -Encoding ([System.Text.Encoding]::UTF8)
#Send-MailMessage -To "it@domain.com.cn.com.cn" -Subject "您的域账户密码即将过期,请尽快更改" -Bodyashtml $Emailbody -From "it@domain.com.cn.com.cn" -Credential $anonCred -SmtpServer 192.168.10.40 -Port 25 -Encoding ([System.Text.Encoding]::UTF8)
#Send-MailMessage -from "gaowang@domain.com.cn.com.cn" -to "$user@domain.com.cn.com.cn" -subject "您的账户密码即将过期" -body $Emailbody -smtpserver 114.251.64.196 -Encoding ([System.Text.Encoding]::UTF8)
#############################################
#查找账户的密码过期时间并发送至管理员账户
#############################################
$username=Get-ADUser $user  -Properties *
$userobject=New-object psobject
$userobject | Add-Member -membertype noteproperty -Name 用户名            -value $username.displayname
$userobject | Add-Member -membertype noteproperty -Name 邮箱              -Value $username.mail
$userobject | Add-Member -membertype noteproperty -Name 最后一次密码设置  -Value $username.Passwordlastset
$userobject | Add-Member -membertype noteproperty -Name 密码过期时间      -Value $pwdlastday
$userobject | Add-Member -membertype noteproperty -Name 距离密码过期天数  -Value $expire_days
$userlist+=$userobject
}
}
$EmailbodyHTML=$userlist|
sort-object 距离密码过期天数 |
ConvertTo-Html |
Out-String
Send-MailMessage -To "it@domain.com.cn.com.cn" -Subject "域账户密码即将过期人员汇总通知" -Bodyashtml $EmailbodyHTML -From "it@domain.com.cn.com.cn" -Credential $anonCred -SmtpServer 192.168.10.40 -Port 25 -Encoding ([System.Text.Encoding]::UTF8)


==============================================================
运行脚本后,

收到的邮件是这样的
亲爱的 XXX :
    您的域账户和邮箱密码即将在-80天后过期,之后您将无法登陆计算机和收发邮件、访问共享、打印,请您尽快更改。
    重置密码过程请遵循以下原则:
    ○密码长度最少 8 位
    ○密码可使用最长时间 90天,过期需要更改密码
    ○密码最短使用 1 天(可以随时再次修改密码)
    ○强制密码历史 3 个(不能使用之前使用过的 3 个密码)
    ○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)
问题:为什么会出现负天数? 这个用户上次修改密码是2017-6-14,距离现在170天,按说这里应该是10天才对的,并且这个用户现在是可以正常使用的。

这个脚本是否还有需要更改的地方?谢谢大家  !



@桩子尚品 @ 桩子尚品



引用:
原帖由 qa747868658 于 2017-12-1 14:32 发表
在AD域上设置了用户必须180修改一次密码,现在想让密码过期之前,邮件通知大家修改密码,防止使用笔记本登陆outlook的用户,因为密码没有修改而无法使用exchange邮箱的问题。以下是脚本 PS(感谢51CTO-桩子尚品)但是总是有报错
...
#密码的过期时间
$pwdlastday=($pwdlastset).adddays(90)

问题在这里



引用:
原帖由 cyalias 于 2017-12-15 10:44 发表

#密码的过期时间
$pwdlastday=($pwdlastset).adddays(90)

问题在这里
好的 谢谢



10-90=-80  



收藏



‹‹ 上一贴:请问一个关于exchange HAB组织架构的问题 ...   |   下一贴:hmailserver ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com