Продолжаем серию статей про резервное копирование и восстановление почтовой базы сервера Exchange 2013. В предыдущих статьях мы показали как создать резервную копию почтовой базы Exchange 2013 и как восстановить ее в специальную базу (recovery database). Сегодня рассмотрим процесс восстановления из бэкапа конкретного ящика (целиком и конкретных папок) и отдельных писем.
Итак, в прошлой статье мы остановились на том, что подключили и смонтировали (перевели в режим онлайн) в отдельную базу для восстановления (Recovery mailbox database) восстановленную из бэкапа резервную копию почтовой базы Exchange 2013. Посмотреть список ящиков, которые содержатся в восстановленной почтовой базе можно с помощью командлета Powershell Get-MailboxStatistics:
Get-MailboxStatistics -Database RDB
Где RDB – имя recovery mailbox базы
Если вас интересует конкретный ящик, вывод предыдущей команды можно отфильтровать с помощью такой конструкции:
Get-MailboxStatistics -Database RDB | ?{$_.DisplayName -like 'Petrov*'}
Для восстановления ящиков в Exchange 2013 используется командлет New-MailboxRestoreRequest.
Чтобы восстановить содержимого отдельного ящика в исходный почтовый ящик воспользуемся такой командой:
New-MailboxRestoreRequest –SourceDatabase RDB –SourceStoreMailbox “Petrov Ivan” –TargetMailbox ipetrov –AllowLegacyDNMismatch
В этом примере из базы RDB восстанавливается почтовый ящик с DisplayName “Petrov Ivan” в почтовый ящик с псевдонимом «ipetrov» существующей базы. По умолчанию командлет New-MailboxRestoreRequest ищет в почтовой базе совпадающие LegacyExchangeDN либо проверяет совпадение адреса X500. Сделано это для того, чтобы администратор случайно не восстановил данные в неверное место. Если действительно нужно восстановить данные в другой ящик, нужно указывать ключ AllowLegacyDNMisMatch.
Get-MailboxRestoreRequestStatistics -Identity MailboxUser\RestoreRequestName
Данные из восстановленного ящика можно скопировать в отдельную папку в ящике пользователя. Допустим, если нужно восстановить содержимое почтового ящика в отдельную папку «Restored Items», команда будет выглядеть так:
New-MailboxRestoreRequest –SourceDatabase RDB –SourceStoreMailbox “Petrov Ivan” –TargetMailbox ipetrov –TargetRootFolder “Restored Items” –AllowLegacyDNMismatch
После окончания процесса восстановления в почтовом ящике пользователя появится новая папка, в которой и будет содержаться содержимое восстановленного ящика.
Возможно восстановить как содержимое ящика целиком, так и отдельные папки. Восстановить папку Inbox (Входящие) можно так:
New-MailboxRestoreRequest -SourceDatabase RDB -SourceStoreMailbox "Petrov Ivan" -TargetMailbox ipetrov -IncludeFolders "#Inbox#"
Ключ -IncludeFolders принимает список папок. Имена папок нужно обрамлять тегом # (хэш). Например, так #SentItems#, #Contacts#, #Tasks#.
Также возможно восстановить отдельное письмо или письма с определенными ключевыми словами, которые содержатся в теме (Subject) или теле (Body) письма. Например, нам нужно найти и восстановить письмо с ключевыми словами “windows server 2012” в теме и словом “MAK key” в тексте письма:
Restore-Mailbox -Identity IT-admin -RecoveryDatabase RDB -SubjectKeywords "windows server 2012" -ContentKeywords "MAK key"
Каждый запрос на восстановление данных из Exchange после успешного выполнения не удаляется их очереди. Чтобы удалить из системы все успешно выполненные запросы, выполните команду:
Get-MailboxRestoreRequest -Status Completed | Remove-MailboxRestoreRequest
Добрый день. А можно ли как-то восстановить личные контакты пользователя? К примеру, пользователь создавал множество своих личных контактов в своём почтовом ящике exchange и однажны их к примеру все или частично удалил.
Контакты — это по сути отдельный папка в ящике Exchange, в которой хранятся контакты пользователя.
Т.е. команда восстановления папки контактов в нашем примере может выглядеть так:
New-MailboxRestoreRequest -SourceDatabase RDB -SourceStoreMailbox «Petrov Ivan» -TargetMailbox ipetrov -IncludeFolders «#Contacts#»
А каким образом восстановить пользователя? Т.е. если происходит не потеря бд с письмами,а потеря настроек из AD? Как бекапить?
Из резервной копии базы Active Directory, Exchange здесь ни при чем.
Если же пользователь AD был случайно удален, его можно восстановить из корзины Active Directory (если, конечно, она активна — https://winitpro.ru/index.php/2012/09/27/korzina-active-directory-v-windows-server-2012/)
Спасибо, статья очень помогла!
Спасибо, всё сработало. Не люблю статьи на майкрософте, вроде та же инфа, только плохо предоставлена и сложно для быстрого понимания
Добрый лень
New-MailboxRestoreRequest –SourceDatabase RDB –SourceStoreMailbox “01 Claim” –TargetMailbox 01.Claim @ Firma.local –AllowLegacyDNMismatch
The operation couldn’t be performed because ’[email protected]’ couldn’t be found.
+ CategoryInfo : NotSpecified: (:) [New-MailboxRestoreRequest], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : [Server=EXCH-01V,RequestId=85468360-137e-4ed8-8094-4fdbeab923e7,TimeStamp=07.12.2023
14:11:12] [FailureCategory=Cmdlet-ManagementObjectNotFoundException] 1F2B5DAF,Microsoft.Exchange.Management.Migra
tion.MailboxReplication.MailboxRestoreRequest.NewMailboxRestoreRequest
+ PSComputerName : exch-01v.Firma.local
Что не так? БД с этим ящиком была удалена.