有时候,我们可能会遇到如下场景:
1. 用户或管理员由于误操作,向全公司发了一封邮件,事后才发现自己发错了。尽管可以通过邮件撤回功能减小此操作带来的负面影响,但是邮件撤回只能应用在对方还没有查看这封邮件的情况下,如果对方看过了,邮件撤回功能也就无力回天了。
2. 组织内收到了大量相同的垃圾邮件,如何批量且快速地从用户邮箱中删除这些垃圾邮件就显得非常有必要了。
鉴于存在以上的场景和并未罗列出来的类似场景中的需求,我们可以通过Exchange 2007 的Cmdlet来快速实现这个需求,也就是如何通过Exchange2007命令行管理程序Cmdlet批量删除包含特定主题或关键字的邮件。
演示环境:
已通过administrator@contoso.com这个邮箱用户在2011年6月10号18:11向组织内所有用户群发了一封邮件,主题为“加薪水”,正文为空的邮件,但企业内部领导不希望员工看到此邮件,如何实现?
操作步骤
1. 要想实现“通过Cmdlet批量删除包含特定主题或关键字的邮件”这个功能,当前操作账号需要满足如下需求:
a)该账号需属于Exchange Server 管理员角色以及源服务器和目标服务器的本地 Administrator组;
b)Exchange 收件人管理员角色;
c)该账号必须具备对其他人邮箱的读写权限。
我们可以通过PowerShell来实现这一需求,只需运行如下命令就可以将administrator赋予对企业内邮箱的完全访问权限,
Get-mailbox | Add-MailboxPermission -User administrator -AccessRights Fullaccess,如图:
2. 完成上面赋权后,我们就可以进入正题了。运行如下cmdlet,将满足特定关键字的邮件删除掉,
Get-Mailbox –Database "Mailbox Database" | Export-Mailbox -SubjectKeywords "加薪水" -StartDate "2011/06/10 18:37" - EndDate "2011/06/10 20:00" –DeleteContent。
该命令的意思是:
在服务器上删除数据库Mailbox Database中所有用户邮箱邮件主题中包含“加薪水”关键字的邮件,时间是从2011年6月10号18点37分到2011年6月10号20点整数据库中存在包含主题“加薪水”的邮件都会被删除掉。如图:
3. 到这一步为止,我们成功实现了删除所有用户邮箱中包含主题为“加薪水”的邮件,而这一切不需要任何用户知道,一切几乎都是透明的。