运行环境Exchange 2013/2016

首先把搜索的结果保存到一个邮箱中作为备份,好处是通过search-mailbox误删除之后可以方便恢复,命令如下。

Import-Csv -Path 'C:\list\MailList.csv' | Foreach {Search-Mailbox -SearchQuery '主题:"WK32"' -Identity $_.E
mail -TargetMailbox [email protected] -TargetFolder inbox}

为了精确找到要删除的邮件,在遇到需要模糊搜索的场景下,可以在把搜索结果归档到目标邮箱后,进入目标邮箱,进行再次确认,防止误删

确认无误后,然后再使用下面命令进行批量删除

Import-Csv -Path 'C:\list\MailList.csv' | Foreach {Search-Mailbox -SearchQuery '主题:"Re:WK32"' -DeleteContent -Force -Identity $_.Email}

如果需要删除特定DB的邮件,可以使用下面的命令

Import-Csv -Path 'C:\list\dbList.csv' | Foreach {get-mailbox -Database $_.DBName -ResultSize unlimited | Search-Mailbox -SearchQuery '主题:"面试技能提升秘籍 时间:2016年4月28日 16:00-17:30 (有课程直播呦)"' -DeleteContent -Force}
删除指定邮箱某一时间点之前的所有邮件,例如2012年8月24日之前的所有邮件
[PS] C:\Windows\system32>Search-Mailbox -Identity [email protected] -SearchQuery "发送时间:<2012/08/24"-deletecontent

附件1

maillist.csv文件的内容格式如下。

email
[email protected]
[email protected]
[email protected]
[email protected]

附件2

dblist.csv的内容如下。

DbName
MBX0602
MBX0603
MBX0604
MBX0605
MBX0701
MBX0702

请关注下面的公众号,获取更多IT资讯:

Powershell下使用Search-mailbox删除邮件_第1张图片