通过powershell 脚本通知公共邮箱账户快要过期和已经过期邮件通知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过powershell 脚本通知公共邮箱账户快要过期和已经过期邮件通知相关的知识,希望对你有一定的参考价值。

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

#Author:Young,时间:2018年1月

#Email:[email protected]

#For:检测AD快要过期/已经过期的公共账户并邮件通知

#Version:1.2

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

#导入活动目录powershell模块

Import-Module Activedirectory

#当前时间

$TodayDate=Get-Date

#查看指定OU中的所有账户的Samaccountname

$Userlist=Get-ADUser -SearchBase "ou=test,dc=lianjia,dc=com" -Filter *? | %{$_.Samaccountname}

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

#循环检测满足Samaccountname,AccountExpirationDate,Manager属性的账户

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

foreach ($user in $Userlist){

$AccountExpirationDat=Get-ADUser $user -Properties? Samaccountname,AccountExpirationDate,Manager,Enabled

#距离账户过期的时间天数

$expire_days=($AccountExpirationDat.AccountExpirationDate -? $TodayDate).Days

#赋值是公邮经理的邮箱地址

$Manager=(Get-ADUser $AccountExpirationDat.Manager).UserPrincipalName

#赋值之公邮经理的名字

$ManagerName=(Get-ADUser $AccountExpirationDat.Manager).Name

#赋值时公邮的邮名称

$NameUser=(Get-ADUser $AccountExpirationDat.Samaccountname).Name

#检索包含有快要账户过期时间的、并有管理人员属性的(这里值得是公邮账户属性中的组织中经理的赋值)

if($AccountExpirationDat.AccountExpirationDate -and $AccountExpirationDat.Manager -and $expire_days -ge 0 -and $expire_days -le 15?? -and $AccountExpirationDat.Enabled -eq "True" )

{

#验证输出的那些账户

#$AccountExpirationDat

#邮件正文

$Emailbady=

"您好, $ManagerName :<p>

您的 $NameUser 公共邮箱账户还有 $expire_days 天后就要过期了。? $expire_days 天后您的账户会被禁用将影响您这个公共邮箱账户的正常使用,请尽快联系服<br />

务台010-10109666申请您的公共邮箱继续使用权限。 <br />

北京链家房地产经纪有限公司 <br />

IT Department</p> "

#发送邮件给公邮管理人员(经理)邮箱通知

Send-MailMessage -From "[email protected]" -to "$manager" -Subject "您的公共邮箱账户即将过期" -BodyAshtml $Emailbady -SmtpServer mail.lianjia.com -Encoding ([System.Text.Encoding]::UTF8)

}

#检索已经过期的公共邮箱账户发送邮件通知

elseif($AccountExpirationDat.AccountExpirationDate -and $AccountExpirationDat.Manager -and $expire_days -lt 0? -and $AccountExpirationDat.Enabled -eq "True" )

{

#验证输出的那些账户

$AccountExpirationDat

#邮件正文

$Emailbady=

"您好, $ManagerName :<p>

您的 $NameUser 公共邮箱账户已经过期 $expire_days 天了。? 您的公共邮箱账户已经禁用请确认一下是否还需要使用,请尽快联系服务<br />

台010-10109666如果需要继续使用请提交一个继续使用的申请,如果该公共邮箱不再使用请提交一个删除账户的申请。 <br />

北京链家房地产经纪有限公司 <br />

IT Department</p> "

#发送邮件给公邮管理人员(经理)邮箱通知

Send-MailMessage -From "[email protected]" -to "$manager" -Subject "您的公共邮箱账户已经过期" -BodyAsHtml $Emailbady -SmtpServer mail.lianjia.com -Encoding ([System.Text.Encoding]::UTF8)

}

}

以上是关于通过powershell 脚本通知公共邮箱账户快要过期和已经过期邮件通知的主要内容,如果未能解决你的问题,请参考以下文章

powershell脚本案例:当有人使用公共账户登陆服务器时,发送邮件到teams,shell脚本

Office365 PowerShell打开邮箱审计功能

Powershell统计邮箱账户信息

powershell自动化脚本邮件轰炸 广告投递 邮件营销

Office365 PowerShell打开邮箱审计功能

Powershell EWS 从共享邮箱发送电子邮件