-Поиск Query не удаляет все элементы

В соответствии с моим кодом 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 ответ

Я понимаю, что это старый пост, но, возможно, это поможет кому-то искать.

Чтобы охватить весь диапазон дат, необходимо указать несколько параметров для параметра -SearchQuery (который ожидает полный запрос AQS). Мне никогда не везло с использованием используемого вами синтаксиса, хотя он указан в документации; добавление явного времени кажется полезным при использовании двух блоков Received вместо того, чтобы пытаться объединить их.

Чтобы получить всю почту в январе 2015 года, попробуйте использовать следующее:

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

Другие вопросы по тегам