Я использую Microsoft Exchange Server 2010 SP2. Я хочу удалить почту пользователя в пределах определенного диапазона дат. Как я могу это сделать? Кстати, когда запускать команду ниже, у меня возникает следующая ошибка.
Search-Mailbox -Identity xxxxx -SearchQuery "Received:> $('01/01/2009') and Received:< $('12/31/2009')" -DeleteContent
Вот мое сообщение об ошибке:
A search keyword should not be preceeded with comparison modifiers eg. '<', '>', '='.
+ CategoryInfo : InvalidArgument: (:) [], ParserException
+ FullyQualifiedErrorId : 61B67608
ОБНОВИТЬ :
Как вы сказали, я сделал буквально ваши комментарии. Но ,
Несмотря на то, что в почтовом ящике пользователя находится около 6000 писем, команда вернула 18 писем ниже.
Search-Mailbox -Identity xxxxxxx -SearchQuery {((Received -lt '01 Oct 2009') -and (Received -gt '01 Aug 2013'))} -TargetMailbox targetmailbox -TargetFolder testxx -LogOnly
Причина вашей ошибки в том, что специальные символы не экранируются. Самый простой способ - заключить значение в двойные кавычки вместо одинарных. Также, если вы хотите использовать диапазон дат, вы можете использовать оператор "..". http://msdn.microsoft.com/en-us/library/office/ee558911(v=office.15).aspx#kql_property_restriction_queries
Так Search-Mailbox xxxxx -SearchQuery "Received:(1/1/2009..12/31/2009)"
Будет произведен поиск всей почты, полученной с 01.01.2009 с 12:00 до 31.12.2009.
Я использую ту же версию Exchange2010, синтаксис отличается, когда вы используете {} и не используете его
Search-mailbox -identity xxxxx -searchQuery {получено:> 31.12.2008 И получено: <01.01.2010} -TargetMailbox targetmailbox -TargetFolder testxx -LogOnly
или
Почтовый ящик поиска -identity xxxxx -searchQuery получено:> 31.12.2008, получено: <01.01.2010 -TargetMailbox targetmailbox -TargetFolder testxx -LogOnly
Замените -LogOnly на -DeleteContent, если его нужно удалить, что по сути делает то же самое