一个用户给我抱怨他的日历上每周一早上10点,同样的会议邀请会重复900多次,过多的记录(几万条重复的)导致他的Outlook根本无法打开日历,一开就死机,问我是否能够删除这些记录。
豆子稍微搜索了一下,发现从OWA的界面里面只能一条条手动删除,Outlook又打不开,那么怎么才能快速的批删除对应的记录呢?找找看Powershell是否有对应的命令,很幸运的是我找到了,这个命令就是search-mailbox。
默认情况下,我的账号尽管是管理员账号,仍然无法使用这个命令,需要把自己的账号加入Discovery Management的管理角色中。登录Office 365的Admin界面- Exchange Admin Center , 左边选择Permission , admin roles下面选择Discovery Management, 把自己的账号加入进去。
接下来需要远程连接Office 365
$cred = Get-Credential "admin@abc.com" Import-Module MSOnline Set-ExecutionPolicy remotesigned Connect-MsolService -Credential $cred #连接到Office365 $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection Import-PSSession $session
连上之后就可以正常的使用Exchange的各种命令了。下面的命令会搜索mmelloy的用户,并删除所有叫做weekly wip - telstra, code 的记录
Search-Mailbox -Identity "mmelloy" -SearchQuery {subject:"weekly wip - telstra,Code"} -DeleteContent
执行以上命令,确认删除。
等待了大概1个多小时后,这些垃圾信息成功的删除!