適用対象:
2016
2019
サブスクリプション エディション
Exchange Server のメールボックス サーバーとエッジ トランスポート サーバーでは、キュー内のメッセージをファイルにエクスポートできます。 エクスポートされたメッセージはキューから削除されません。 メッセージのコピーは、プレーン テキスト ファイルとして指定された場所に作成されます。 メッセージ ファイルはメモ帳または Outlook で表示でき、Exchange organization 内外の他のメールボックス サーバーまたはエッジ トランスポート サーバー上の再生ディレクトリを使用してメッセージ ファイルを再送信できます。
はじめに把握しておくべき情報
各手順の推定完了時間:5 分
この手順を実行する際には、あらかじめアクセス許可が割り当てられている必要があります。 必要なアクセス許可を確認するには、「メール フローのアクセス許可」トピックの「キュー」エントリを参照してください。
配信キュー、送信キュー、または到達不能キューからメッセージをエクスポートするには、メッセージを Suspended 状態である必要があります。 アクティブで正常なキューの場合は、まずキューを一時停止してから、メッセージを一時停止できるようにします。 有害メッセージ キューに置かれたメッセージは、既に中断状態になっています。 詳細については、「 キューの一時停止 」と「 キュー内のメッセージを一時停止する」を参照してください。
Exchange ツールボックスのキュー ビューアーを使用して、メッセージをエクスポートすることはできません。 ただし、Exchange 管理シェルを使用してメッセージをエクスポートする前に、キュー ビューアーを使用してメッセージを検索、識別、一時停止できます。 キュー ビューアーの詳細については、「キュー ビューアー」をご覧ください。 オンプレミスの Exchange 組織で Exchange 管理シェルを開く方法については、「 Open the Exchange Management Shell」をご覧ください。
キューからメッセージをエクスポートしても、キューからメッセージを削除しません。 Replay ディレクトリを使用してエクスポートしたメッセージを再送信する場合は、メッセージが重複して配信されないように、キューからメッセージを削除する必要があります。 詳細については、「キューからメッセージを削除する」を参照してください。
エクスポートするメッセージ ファイルのターゲットの場所に関する次の情報を確認します。
- ターゲット フォルダーは、メッセージをエクスポートする前に存在している必要があり、自動的に作成されません。 完全なパスを指定しない場合、ファイルは現在の Exchange 管理シェルの作業ディレクトリに書き込まれます。
- このパスは、Exchange サーバーにとってローカルなパスと、リモート サーバー上の共有 (\server\share) への UNC パスにすることができます。
- アカウントには、ターゲット フォルダーでの 書き込み アクセス許可が必要です。
一意性を確保するために、メッセージの InternetMessageID プロパティ値をエクスポートするメッセージ ファイル名を使用します。 ファイル名では山かっこ (> と <) は使用できないため、手順には削除手順が含まれています。 また、.eml ファイル名拡張子を使用しているため、Outlook でファイルを簡単に開いたり、Replay ディレクトリを使用してファイルを再送信したりできます。
キュー内のキューとメッセージの ID とフィルターの詳細については、次のトピックを参照してください。
このトピックの手順で使用可能なキーボード ショートカットについては、「Exchange 管理センターのキーボード ショートカット」を参照してください。
ヒント
問題がある場合は、 Exchange の Exchange Server フォーラムでヘルプを依頼する |Exchange Server |管理。
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}