Экспорт сообщений из очередей в Exchange Server

ПРИМЕНЯЕТСЯ К:yes-img-162016 yes-img-192019 yes-img-seпо подписке

На серверах почтовых ящиков и пограничных транспортных серверах в Exchange Server можно экспортировать сообщения из очереди в файлы. Экспортированные сообщения не удаляются из очереди. Копии сообщений создаются в указанном месте в виде файлов с обычным текстом. Файлы сообщений можно просматривать в "Блокноте" или Outlook, а также повторно отправлять их с помощью каталога воспроизведения на любом другом сервере почтовых ящиков или пограничном транспортном сервере внутри или за пределами организации Exchange.

Что нужно знать перед началом работы

  • Предполагаемое время для завершения каждой процедуры: 5 минут

  • Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Чтобы узнать, какие разрешения вам необходимы, см. запись "Очереди" в статье "Разрешения потока обработки почты".

  • Чтобы экспортировать сообщения из очереди доставки, очереди отправки или очереди недоступности, сообщения должны находиться в состоянии "Приостановлено". Для активных, работоспособных очередей сначала приостанавливается очередь, чтобы затем можно было приостановить обработку сообщений. Сообщения в очереди сообщений о сбое уже находятся в состоянии приостановки. Дополнительные сведения см. в разделах Приостановка очередей и Приостановка сообщений в очередях.

  • Экспортировать сообщения с помощью средства просмотра очередей на панели инструментов Exchange невозможно. Однако вы можете использовать просмотр очередей, чтобы найти, идентифицировать и приостановить сообщения, прежде чем экспортировать их с помощью командной консоли Exchange. Дополнительные сведения о средстве просмотра очереди см. в статье Queue Viewer. Сведения о том, как открыть командную консоль Exchange в локальной организации Exchange, см. в статье Open the Exchange Management Shell.

  • При экспорте сообщений из очереди сами сообщения из нее не удаляются. Если вы повторно отправляете экспортированные сообщения с помощью каталога Replay, их следует удалить из очереди, чтобы избежать повторной доставки сообщений. Дополнительные сведения см. в разделе Удаление сообщений из очередей.

  • Проверьте следующие сведения о целевом расположении для экспортированных файлов сообщений:

    • Целевая папка должна существовать перед экспортом сообщений, она не будет создана автоматически. Если вы не укажете полный путь, файлы записываются в текущий рабочий каталог командной консоли Exchange.
    • Путь может быть локальным к серверу Exchange или UNC-путем к общей папке на удаленном сервере (\server\share).
    • Учетная запись должна иметь разрешение на запись в папке назначения.
  • Для имен файлов экспортируемых сообщений мы используем значение свойства InternetMessageID сообщения, чтобы обеспечить уникальность. Процедура включает действия по удалению угловых скобок (> и <), так как они не допускаются в именах файлов. Кроме того, используется расширение имени файла .eml, чтобы вы могли легко открывать файлы в Outlook или повторно отправлять их с помощью каталога воспроизведения.

  • Дополнительные сведения об удостоверениях и фильтрах для очередей и сообщений в очередях см. в следующих разделах:

  • Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.

Совет

Возникли проблемы? Обратитесь за помощью на форум Exchange Server на сайте Exchange | Exchange Server | Управление.

Экспорт определенного сообщения из очереди с помощью командной консоли Exchange

Чтобы экспортировать определенное сообщение из очереди, используйте следующий синтаксис:

Export-Message -Identity <MessageIdentity> | AssembleMessage -Path <FilePath>\<FileName>.eml

В этом примере выполняются следующие действия на сервере с именем Mailbox01:

  1. Приостанавливает очередь доставки contoso.com.

  2. Приостанавливает работу сообщения в очереди со значением InternalMessageID 1234.

  3. Экспорт копии сообщения в файл 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:

  1. Приостанавливает очередь доставки contoso.com.
  2. Приостанавливает действие всех сообщений в очереди.
  3. Экспортирует копии сообщений в локальную папку 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:

  1. Приостанавливает работу всех очередей на сервере.
  2. Приостанавливает получение всех сообщений во всех очередях на сервере от отправителей из домена fabrikam.com.
  3. Экспортирует копии сообщений в локальную папку 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:

  1. Приостанавливает работу всех очередей на сервере.
  2. Приостанавливает работу всех сообщений во всех очередях на сервере.
  3. Экспортирует копии сообщений в локальную папку 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}