-Поиск 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')