Лучший отвечающий
Удаление вложений в сообщениях старше N дней

Вопрос
-
Коллеги всем привет! Имею задачу, которую не могу решить. Поиск не дал особых результатов. В exchange не силен, надеюсь вашу на поддержку. Собственно сама задача: Необходимо удалять сообщения с вложениями либо только вложения со всех почтовых ящиков старше N дней. Удалить сообщения старше N дней получается.
Как реализовать это с помощью EMS?
Пробовал:
Search-Mailbox -Identity antonova@mailbox.ru -SearchQuery '(attachment:<09/07/2017)' -DeleteContent
Результат:
RunspaceId : e3e14768-7653-45ff-be0c-91ddcaed5b6e
Identity : intra.ulzapad.ru/ulzapad_users/LAW/Антонова Анастасия Вячеславовна
TargetMailbox :
Success : True
TargetFolder :
ResultItemsCount : 0
ResultItemsSize : 0 B (0 bytes)Хотя вложения в этом ящике присутствуют.
Очень прошу Вашей помощи.
9 октября 2017 г. 5:16
Ответы
-
Добрый день,
встроенными средствами Exchange не выйдет. Решение, искать сторонний софт или самому углубляться в программирование на EWS и писать соответствующий скрипт (задача не тривиальная).
В E2016 появился параметр hasattachment:true, решающий эту задачу, но в 2013 его не добавили, увы.
- Предложено в качестве ответа Dima RazbornovMVP 9 октября 2017 г. 12:04
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 18 октября 2017 г. 5:19
9 октября 2017 г. 10:05 -
...в этом варианте дату надо править вручную каждый день. Необходимо автоматическое удаление с давностью 90 дней, например добавив скрипт в планировщик
Т.е. изначально вот эти попытки -SearchQuery '(attachment:<09/07/2017)' вас не смущали, что же, аппетиты растут :)
Тогда возвращаемся к первому предложенному варианту, кодим на ews, ищем сторонний софт или таки правим руками. Каждый день зачем это запускать немного неясно... Ну либо дальше разбирайтесь с переменной и почему SearchQuery ее не воспринимает должным образом. Я как то долго пытался побороть сей факт, ContentFilter победить удалось, а SearchQuery ни в какую переменную не воспринимает как надо, выдавая нулевой результат.
И со звездочкой вначале фильтра смотрите, могут быть сюрпризы)
- Изменено Ivan.Basov 12 октября 2017 г. 14:33
- Помечено в качестве ответа Максим Никитин 18 октября 2017 г. 6:41
12 октября 2017 г. 14:28
Все ответы
-
Добрый день,
встроенными средствами Exchange не выйдет. Решение, искать сторонний софт или самому углубляться в программирование на EWS и писать соответствующий скрипт (задача не тривиальная).
В E2016 появился параметр hasattachment:true, решающий эту задачу, но в 2013 его не добавили, увы.
- Предложено в качестве ответа Dima RazbornovMVP 9 октября 2017 г. 12:04
- Помечено в качестве ответа Vasilev VasilMicrosoft contingent staff 18 октября 2017 г. 5:19
9 октября 2017 г. 10:05 -
Удаление сообщений с вложениями выполняется:
Search-Mailbox -Identity antonovaav@mailbox.ru -SearchQuery 'attachment:"*.jpg"', 'attachment:"*.pdf"' -DeleteContent -Force
Как удалить только сообщения с вложениями старше 90 дней?
пробовал дописывать 'Received:>$(Get-Date).adddays(-90)'.
Результат:
RunspaceId : e3e14768-7653-45ff-be0c-91ddcaed5b6e
Identity : intra.ulzapad.ru/ulzapad_users/LAW/Антонова Анастасия Вячеславовна
TargetMailbox :
Success : True
TargetFolder :
ResultItemsCount : 0
ResultItemsSize : 0 B (0 bytes)12 октября 2017 г. 7:33 -
Так и есть,
$daysback = (Get-Date).adddays(-90)
Search-Mailbox antonovaav@mailbox.ru –SearchQuery “Received:< $($daysback)” –DeleteContent
Не находит ничего, а вложения есть, хотите сказать?
Давайте тогда от задачи
Собственно сама задача: Необходимо удалять сообщения с вложениями либо только вложения со всех почтовых ящиков старше N дней. Удалить сообщения старше N дней получается.Как реализовать это с помощью EMS?
Пойдем в сторону политик хранения, почитаем как они работают и настроим политику, которая проштампует сообщения и будет удалять те, которые старше N дней.
И решим задачу.
12 октября 2017 г. 8:52 -
Политики удаляют все сообщения, а задача: удалять только сообщения с вложениями старше N дней12 октября 2017 г. 9:59
-
Удаление сообщений с вложениями выполняется:
Search-Mailbox -Identity antonovaav@mailbox.ru -SearchQuery 'attachment:"*.jpg"', 'attachment:"*.pdf"' -DeleteContent -Force
Как удалить только сообщения с вложениями старше 90 дней?
Вы бы чтоли сразу написали, что вам не всё с аттачами надо удалить, а только с определенным типом вложений. Можете попробовать так:
Search-Mailbox antonovaav@mailbox.ru –SearchQuery 'attachment:"*.jpg"','Received:1/1/2000..7/12/2017' -DeleteContent -Force
7/12/2017 поменяете на свои минус 90 дней, тут указал просто минус три месяца. Формат mm/dd/yyyy, возможно у вас надо будет поменять на dd/mm/yyyy
Только со звездочкой в таких запросах стоит поосторожнее, можете удалить совсем не то, что вам кажется. KQL не поддерживает поиск со зведочкой в начале запроса, как вы тут пытаетесь искать, только в конце.
- Изменено Ivan.Basov 12 октября 2017 г. 11:06
12 октября 2017 г. 10:02 -
...в этом варианте дату надо править вручную каждый день. Необходимо автоматическое удаление с давностью 90 дней, например добавив скрипт в планировщик12 октября 2017 г. 11:15
-
...в этом варианте дату надо править вручную каждый день. Необходимо автоматическое удаление с давностью 90 дней, например добавив скрипт в планировщик
Т.е. изначально вот эти попытки -SearchQuery '(attachment:<09/07/2017)' вас не смущали, что же, аппетиты растут :)
Тогда возвращаемся к первому предложенному варианту, кодим на ews, ищем сторонний софт или таки правим руками. Каждый день зачем это запускать немного неясно... Ну либо дальше разбирайтесь с переменной и почему SearchQuery ее не воспринимает должным образом. Я как то долго пытался побороть сей факт, ContentFilter победить удалось, а SearchQuery ни в какую переменную не воспринимает как надо, выдавая нулевой результат.
И со звездочкой вначале фильтра смотрите, могут быть сюрпризы)
- Изменено Ivan.Basov 12 октября 2017 г. 14:33
- Помечено в качестве ответа Максим Никитин 18 октября 2017 г. 6:41
12 октября 2017 г. 14:28