-SearchQuery不删除所有项目

时间:2014-04-29 18:57:30

标签: powershell exchange-server exchange-management-shell

根据我显示的powershell代码,它应删除90天前和昨天之间的所有项目。例如,如果我现在运行此日期范围将是1/29/2014 - 4/28/2014

$x = ((get-date).addDays(-90)).ToShortDateString()
$y = ((get-date).addDays(-1)).ToShortDateString()
$xy = "$($x)..$($y)"

Search-Mailbox bunnyb2 -SearchQuery "Received:$xy" -DeleteContent -Force

这是删除它应该发送的大多数邮件。但是,邮箱仍然保留所有已删除的电子邮件,直到((get-date).addDays(-1))晚上7点。应该删除的最后5个小时的电子邮件不是。

起初我认为这可能是时间转换问题,但是我运行命令的机器是在美国中部时间,而邮箱服务器也是美国中部时间。


另外,请不要告诉我"Search-Mailbox whismj-SearchQuery "Received:<$y" -DeleteContent -Force"。这对我来说是另一种蠕虫。虽然代码执行完全没有返回或删除任何内容。但是,当我取消<时,昨天收到的所有电子邮件都将被删除。

1 个答案:

答案 0 :(得分:0)

我意识到这是一篇较老的帖子,但也许这会有助于搜索。

为了达到整个日期范围,您需要为-SearchQuery参数提供多个选项(期望完整AQS query)。即使在文档中列出了这些语法,我也没有运气使用您正在使用的语法;在使用两个已接收的块而不是尝试将它们组合时,添加显式时间似乎有效。

要在2015年1月收到所有邮件,请尝试使用以下内容:

-SearchQuery "Received: > $('01/01/2015 00:00:00') AND Received: < $('01/31/2015 23:59:59')