0

根据我显示的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"。对我来说,这完全是另外一罐蠕虫。虽然代码执行绝对没有返回或删除。但是,当我起飞时<,昨天收到的所有电子邮件都被删除了。

4

1 回答 1

0

我意识到这是一篇较旧的帖子,但也许这会帮助某人搜索。

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

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

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

于 2015-07-28T18:44:29.340 回答