С момента появления первой «корзины» в Exchange 2000 пользователи могли восстанавливать удаленные элементы, не направляя администратору запрос о восстановлении данных из резервной копии. Поскольку, как известно, человеку свойственно ошибаться (например, нечаянно удалять важные сообщения), эта функция остается нашим бесценным помощником в последние 15 лет.

Однако разработчики Microsoft более не хотят, чтобы мы называли ее корзиной (dumpster). На каком-то этапе данный термин показался неприемлемым специалистам по маркетингу, которые решили, что функция будет гораздо привлекательнее, если назвать ее Recoverable Items («Восстанавливаемые элементы») (https://technet.microsoft.com/en-us/library/ee364755.aspx) или dumpster 2.0. Конечно, элементы с возможностью восстановления заметно усовершенствованы в Exchange 2010: вместо флага, установленного на элементе, когда он удален (ptagDeletedOnFlag), появился набор скрытых папок, используемых для хранения удаленных элементов и других целей, например удержания данных на месте. Объекты остаются в «Восстанавливаемых элементах» в период хранения и могут быть восстановлены пользователем в течение этого времени.

У структуры элементов с возможностью восстановления много достоинств. Она гарантирует, что элементы доступны для восстановления пользователями, сохраняет элементы столько, сколько нужно администратору, и содержит элементы, необходимые для удержания данных на месте (даже если пользователи пытаются удалить компрометирующую запись). Одним словом, элементы с возможностью восстановления функционируют исправно.

Но есть один маленький, но крайне неприятный недостаток. Если элемент сначала помещается в папку Deleted Items («Удаленные»), то нельзя восстановить удаленный элемент в первоначальной папке. Было бы хорошо, если бы Exchange сохранял сведения о контексте папки при удалении элементов, но этого не происходит. Поэтому клиентам предоставляется самостоятельно решать, как реализовать функцию восстановления удаленных элементов. При тестировании пары Outlook 2013 SP1 с Outlook 2016 и Outlook Web App видно, что в этих клиентах используются различные подходы к восстановлению удаленных элементов (см. экран 1).

 

Восстановление удаленных элементов в Outlook 2013 SP1 и Outlook 2016
Экран 1. Восстановление удаленных элементов в Outlook 2013 SP1 и Outlook 2016

Outlook позволяет пользователям назначить режим восстановления удаленных элементов для любой папки, например:

  • Выберите элемент в почтовом ящике Inbox («Входящие»).
  • Используйте сочетание клавиш Shift/Delete для удаления элемента без возможности восстановления. Exchange перемещает элемент в папку Recoverable Item\Deletions («Восстановимый элемент\Удаления»).
  • Перейдите к папке Junk Email («Нежелательная почта»), щелкните правой кнопкой мыши и выберите команду Recover Deleted Items («Восстановить удаленные элементы»), чтобы увидеть список элементов, сохраненных в Recoverable Items\Deletions.
  • Найдите элемент, удаленный из почтового ящика «Входящие», и щелкните Restore Selected Items («Восстановить выделенные элементы»). Элемент восстанавливается в папке Junk Email.

Это логичный подход, основанный на предположении, что пользователь знает, куда нужно отправить восстановленный элемент.

В интерфейсе OWA есть несколько важных отличий от Outlook. Во-первых, восстановление удаленных элементов доступно в OWA только в том случае, если выбрана папка Deleted Items («Удаленные элементы»). Во-вторых, в Outlook можно сортировать элементы по любому из столбцов, показанных в диалоговом окне Recover Deleted Items («Восстановление удаленных элементов»), достаточно щелкнуть заголовок столбца для сортировки; в OWA сортировка происходит по дате получения, а другие параметры сортировки не предусмотрены. Но у OWA есть и преимущества благодаря очень полезной функции поиска нужных элементов в длинных списках (см. экран 2).

 

Восстановление удаленных элементов в OWA
Экран 2. Восстановление удаленных элементов в OWA

Последнее различие — способ восстановления элементов. OWA не обеспечивает восстановление удаленных элементов для всех папок, поэтому строится логичное предположение на основе типа элемента относительно места назначения восстановленного элемента. После того как элемент восстановлен, OWA извещает пользователя о том, что почтовые сообщения отправляются в папку «Входящие», элементы календаря — в «Календарь», сведения о контактах — в «Контакты», а элементы задач — в «Задачи». Суть подхода заключается в том, что элементы следует восстанавливать в ту папку, в которой их можно использовать. Например, бессмысленно восстанавливать элемент календаря в папку «Входящие», потому что он чужеродный для этой папки и должен быть именно в папке календаря, чтобы клиент смог корректно показать и обработать его (см. экран 3).

 

Извещение OWA о восстановлении элемента
Экран 3. Извещение OWA о восстановлении элемента

Все логично, за исключением того обстоятельства, что пользователь может не пожелать восстанавливать все почтовые элементы (точнее, все элементы, не относящиеся к календарю, задачам и контактам) в папке «Входящие». Например, если удалить беседу, записанную из Lync, а позднее восстановить ее, то элемент окажется в папке «Входящие», хотя его было бы лучше поместить в папку Conversations («Беседы»).

Конечно, не составляет труда переместить элемент из папки «Входящие» в любое удобное место, и самое важное — восстановить элемент, прежде чем он будет удален с сервера. Реализация функции и в Outlook, и в OWA соответствует этому критерию.

Но было бы хорошо, если бы Exchange отслеживал последнюю папку, в которой находился элемент перед удалением (игнорируя папку «Входящие»), чтобы дать клиентам более точные указания, куда следует направить элемент, если придется его восстанавливать. Свойство MAPI подошло бы для хранения этой информации.

Общий подход к восстановлению элементов был бы отличным решением, а возможность восстановления непосредственно в исходном месте — идеальным.