Экспорт сообщений из очередей в Exchange Server
На серверах почтовых ящиков и пограничных транспортных серверах в Exchange Server можно экспортировать сообщения в очереди в файлы. Экспортированные сообщения не удаляются из очереди. Копии сообщений создаются в указанном расположении в виде файлов обычного текста. Файлы сообщений можно просмотреть в Блокноте или Outlook, а также повторно отправить файлы сообщений с помощью каталога Воспроизведения на любом другом сервере почтовых ящиков или пограничном транспортном сервере в организации Exchange или за ее пределами.
Что нужно знать перед началом работы
Предполагаемое время для завершения каждой процедуры: 5 минут
Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в разделе "Очереди" в разделе Разрешения потока обработки почты .
Чтобы экспортировать сообщения из очереди доставки, очереди отправки или очереди Недоступно, сообщения должны находиться в состоянии Приостановлено. Для активных и работоспособных очередей сначала нужно приостановить очередь, чтобы затем можно было приостановить сообщения. Сообщения в очереди сообщений о сбое уже находятся в состоянии приостановки. Дополнительные сведения см. в разделах Приостановка очередей и Приостановка сообщений в очередях.
Экспортировать сообщения с помощью средства просмотра очередей на панели инструментов Exchange невозможно. Однако средство просмотра очередей можно использовать для поиска, идентификации и приостановки сообщений перед их экспортом с помощью командной консоли Exchange. Дополнительные сведения о средстве просмотра очереди см. в статье Queue Viewer. Сведения о том, как открыть командную консоль Exchange в локальной организации Exchange, см. в статье Open the Exchange Management Shell.
При экспорте сообщений из очереди они не удаляются. При повторной отправке экспортированных сообщений с помощью каталога Воспроизведения следует удалить сообщения из очереди, чтобы избежать дублирования доставки сообщений. Дополнительные сведения см. в разделе Удаление сообщений из очередей.
Проверьте следующие сведения о целевом расположении экспортированных файлов сообщений:
- Целевая папка должна существовать перед экспортом сообщений и не будет создана для вас. Если не указать полный путь, файлы записываются в текущий рабочий каталог командной консоли Exchange.
- Путь может быть локальным для сервера Exchange Server или UNC-путем к общей папке на удаленном сервере (\server\share).
- Ваша учетная запись должна иметь разрешение на запись в целевой папке.
Мы используем значение свойства InternetMessageID сообщения для экспортированных имен файлов сообщений, чтобы обеспечить уникальность. Процедуры включают шаги по удалению угловых скобок (> и <), так как они не разрешены в именах файлов. Кроме того, мы используем расширение EML-файла, чтобы можно было легко открыть файлы в Outlook или повторно отправить их с помощью каталога Воспроизведения.
Дополнительные сведения об удостоверениях и фильтрах для очередей и сообщений в очередях см. в следующих разделах:
Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.
Совет
Возникли проблемы? Обратитесь за помощью к участникам форумов Exchange. Посетите форумы по адресу: Exchange Server, Exchange Online или Exchange Online Protection.
Экспорт определенного сообщения из очереди с помощью командной консоли Exchange
Чтобы экспортировать определенное сообщение из очереди, используйте следующий синтаксис:
Export-Message -Identity <MessageIdentity> | AssembleMessage -Path <FilePath>\<FileName>.eml
В этом примере выполняются следующие действия на сервере с именем Mailbox01:
Приостанавливает очередь доставки contoso.com.
Приостанавливает сообщение в очереди со значением InternalMessageID 1234.
Экспортирует копию сообщения в файл D:\contoso Export\export.eml.
Suspend-Queue Mailbox01\contoso.com
Suspend-Message -Identity Mailbox01\contoso.com\1234
Export-Message -Identity Mailbox01\contoso.com\1234 | AssembleMessage -Path "D:\Contoso Export\export.eml"
Экспорт всех сообщений из очереди с помощью командной консоли Exchange
Чтобы экспортировать все сообщения из очереди и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:
Get-Message -Queue <QueueIdentity> -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}
В этом примере выполняются следующие действия на сервере с именем Mailbox01:
- Приостанавливает очередь доставки contoso.com.
- Приостанавливает все сообщения в очереди.
- Экспортирует копии сообщений в локальную папку D:\Contoso Export.
Suspend-Queue Mailbox01\contoso.com
Get-Queue Mailbox01\contoso.com | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Queue Mailbox01\Contoso.com -ResultSize Unlimited | ForEach-Object {$Temp="D:\Contoso Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}
Экспорт определенных сообщений из всех очередей на сервере с помощью командной консоли Exchange
Чтобы экспортировать определенные сообщения из всех очередей на сервере и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:
Get-Message -Filter "<MessageFilter>" [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}
В этом примере выполняются следующие действия на сервере с именем Mailbox01:
- Приостанавливает все очереди на сервере.
- Приостанавливает все сообщения во всех очередях на сервере от отправителей в домене fabrikam.com.
- Экспортирует копии сообщений в локальную папку С именем D:\Fabrikam Export.
Suspend-Queue -Server Mailbox01
Suspend-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01
Get-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Fabrikam Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}
Экспорт всех сообщений из всех очередей на сервере с помощью командной консоли Exchange
Чтобы экспортировать все сообщения из всех очередей на сервере и использовать значение InternetMessageID каждого сообщения в качестве имени файла, используйте следующий синтаксис:
Get-Message [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}
В этом примере выполняются следующие действия на сервере с именем Mailbox01:
- Приостанавливает все очереди на сервере.
- Приостанавливает все сообщения во всех очередях на сервере.
- Экспортирует копии сообщений в локальную папку С именем D:\Mailbox01 Export.
Suspend-Queue -Server Mailbox01
Get-Queue -Server Mailbox01 | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Mailbox01 Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}