Exchange 管理シェルを使用したキューの管理

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2006-09-18

ここでは、Exchange 管理シェルのキューのコマンドレットについて説明します。また、コマンドレットとパラメータ セットを使用してクエリを作成し、結果を取得して、変更操作を実行する方法について説明します。キュー タスクと、これらのタスクを監視とトラブルシューティングのために使用する方法の詳細については、「キューの管理」を参照してください。

Microsoft Exchange Server 2007 では、Exchange 管理シェルを使用して、管理および構成タスクを実行し、タスクを自動化するスクリプトを作成できます。Exchange 管理シェルを使用すると、サーバー上のキューとキュー内のメッセージに関する情報を表示したり、キューおよびメール アイテムに対する管理操作を実行したりすることもできます。これらの操作は、メール フローのトラブルシューティングおよびスパムの識別に役立ちます。Exchange 管理シェルを使用する方法の詳細については、「Exchange 管理シェルの使用」を参照してください。

キューおよびメッセージの管理

キュー タスクは、表示操作と変更操作の 2 つのカテゴリにグループ化されます。表示操作では、サーバー上のキューおよびキューにあるメッセージを表示し、表示する際のデータのグループ化や並べ替えの方法を選択することができます。変更操作は、キューおよびメッセージの状態を変更する操作です。どちらの種類のタスクも、リモート プロシージャ コール (RPC) を使用してトランスポート ワーカー プロセスに接続し、データにアクセスします。Exchange 2007 トランスポート プロセスの詳細については、「トランスポートのアーキテクチャ」を参照してください。

既定では、Exchange 管理シェルはローカル サーバーを対象としています。また、リモート サーバー名をキュー ID の一部として指定したり、フィルタで Server パラメータを使用したりすると、リモート サーバーに接続してそのサーバー上のキューおよびメッセージを表示できます。Exchange 管理シェルを使用してキューおよびメッセージを表示する方法の詳細については、「キューを表示する方法」および「メッセージを表示する方法」を参照してください。

キューのコマンドレット

表 1 は、キューおよびキュー内のメッセージを管理するために Exchange 管理シェルで使用できるコマンドレットの一覧です。各コマンドレットの使用方法の詳細については、"詳細情報" 列に記載されているヘルプ トピックを参照してください。

表 1   キューのコマンドレット

コマンドレット 用途 詳細情報

Export-Message

このコマンドレットは、管理者が指定したファイル パスにメッセージのコピーを保存します。

Export-Message

メッセージをキューからエクスポートする方法

Get-Message

このコマンドレットにより、配信のために現在キューにあるメッセージの詳細を表示できます。Get-Message コマンドレットを使用して一連のメッセージを取得し、その結果をいずれかの割り込み用のコマンドレットにパイプ処理することができます。

Get-Message

メッセージを表示する方法

パイプライン処理

コマンド出力の操作

Get-Queue

このコマンドレットにより、トランスポート サーバー上にあるキューの構成の詳細を表示できます。Get-Queue コマンドレットを使用して一連のキューを取得し、その結果をいずれかの割り込み用のコマンドレットにパイプ処理することができます。

Get-Queue

キューを表示する方法

パイプライン処理

コマンド出力の操作

Remove-Message

このコマンドレットは、キューからメッセージを削除します。管理者は、配信不能レポート (NDR) を送信するかどうかを選択できます。

Remove-Message

キューからメッセージを削除する方法

Resume-Message

このコマンドレットは、以前に中断されたメッセージの配信を再開します。Resume-Message コマンドレットを使用して、有害なメッセージ キューにあるメッセージを再送信して送信キューに戻し、カテゴライザによる再処理を行うこともできます。

Resume-Message

メッセージを再開する方法

キュー内のメッセージを再送信する方法

Resume-Queue

このコマンドレットは、以前に中断されたキューからメッセージの配信を再開します。

Resume-Queue

キューを再開する方法

Retry-Queue

このコマンドレットは、現在の状態が "再試行" であるキューを強制的に接続しようとします。この接続試行は、次にスケジュールされている再試行より優先されます。Resubmit パラメータを指定して Retry-Queue コマンドレットを使用すると、配信キューまたは到達不能キューにあるメッセージを送信キューに送信し、カテゴライザによる再処理を行うこともできます。

Retry-Queue

キューを再試行する方法

キュー内のメッセージを再送信する方法

Suspend-Message

このコマンドレットは、Exchange 2007 トランスポート サーバー上のキューにあるメッセージの配信を中断します。

Suspend-Message

メッセージを中断する方法

Suspend-Queue

このコマンドレットは、Exchange 2007 トランスポート サーバー上にあるキューの送信処理を中断します。

Suspend-Queue

キューを中断する方法

キュー タスクのパラメータ セットの使用

キュー タスクでは、複数のパラメータ セットがサポートされています。このパラメータ セットとは、Identity、Queue、および Filter です。Queue パラメータ セットは、メッセージ コマンドでのみ使用できます。Identity、Queue、および Filter のパラメータ セットをコマンドで組み合わせることはできません。Server パラメータは、フィルタ式でのみ使用されます。

Exchange 管理シェルで使用できる高度なページ パラメータを、Identity、Queue、および Filter のパラメータ セットと組み合わせて使用することもできます。高度なページ パラメータは、結果セットを並べ替えて表示する方法を制御するために、Get-Message コマンドレットと Get-Queue コマンドレットで使用されます。高度なページ パラメータについては、このトピックの表 4 で説明します。

メッセージまたはキューを変更するコマンドを使用するときは、Identity、Queue、または Filter のパラメータ セットを使用する必要があります。パラメータを指定しない場合、Get-Message コマンドレットと Get-Queue コマンドレットは、ローカル サーバー上に存在するすべてのメッセージまたはキュー オブジェクトを表示します。

キューまたはメッセージ クエリの結果セットに 250,000 を超えるアイテムが含まれる場合はエラーが発生し、結果の数を減らすためにフィルタを適用するよう求められます。

Identity パラメータの使用

Identity パラメータは、表示する、または操作の対象となる特定のメッセージまたはキューがわかっている場合に使用します。ID による検索は、同じクエリをフィルタとして設定するよりも高速です。サーバー名は、ホスト名または完全修飾ドメイン名 (FQDN) として表すことができます。リモート サーバーの名前を ID の一部として入力すると、そのサーバーへの RPC 接続を開始し、そのサーバー上のキューに対するクエリを実行することができます。サーバー名を使用しない場合は、ローカル ホストが暗黙的に指定されます。変更操作に対して ID を指定する場合は、識別されるオブジェクトが完全に定義されていて一意である必要があります。ID が明示的でない場合、操作は実行されません。ID のサーバー部分を省略した場合は、ローカル コンピュータと見なされます。

Get-Queue コマンドレットまたは Get-Message コマンドレットの一部として Identity パラメータを使用する場合、Identity パラメータでワイルドカード表現を使用できます。

キュー ID

永続キューには一意の名前があり、名前で指定することができます。配信キューには、一意のデータベース ID が割り当てられます。このデータベース ID を使用してキューを指定したり、配信先の名前を使用してキューを指定したりすることができます。一意のデータベース ID を指定してキューに対する操作を行う場合は、まず Get-Queue コマンドレットを実行する必要があります。結果でデータベース ID が返されます。キューに対して指定できる ID の形式を表 2 に示します。

表 2   キュー ID の形式

キュー ID の形式 用途

Server\QueueJetID (Int64)

配信キューの完全な一意の ID。

\QueueJetID

ローカル サーバー上のキューの ID。サーバー名は省略されます。このため、ローカル サーバーが暗黙的に指定されます。

Server\*

指定されたサーバー上のすべてのキュー。

Server\NextHopDomain

特定のリモート ドメインに配信されるメッセージを保持している、指定されたサーバー上のキュー。

\NextHopDomain

特定のドメイン宛てのメッセージを保持している、ローカル サーバー上にあるキュー。

Server\Poison

指定されたサーバー上にある有害なメッセージ キュー。

Server\Submission

カテゴライザによって処理されるのを待っているアイテムを含むキュー。

Server\Unreachable

ルーティングできないアイテムを含んでいる、指定されたサーバー上にあるキュー。

次のコード例は、Get-Queue コマンドレットでキュー ID を使用する方法を示しています。この例は、Contoso.com で終わる SMTP (簡易メール転送プロトコル) ドメイン名に配信されるメッセージを保持しているすべてのキューの一覧を返します。また、この例は、詳細な一覧として結果セットの形式を指定します。

Get-Queue -Identity Server\*Contoso.com | format-list

メッセージ ID

メッセージの ID は、一意のデータベース メール アイテムとキュー ID を結合したものです。整数形式の ID は、メッセージがキューの JET データベースに入るときにメッセージに割り当てられ、その整数がキュー ID に付加されてメッセージ ID が作成されます。データベース ID を指定してメッセージに対する操作を行うには、まず Get-Message コマンドレットを実行する必要があります。結果で ID が返されます。リモート サーバーに接続する場合は、サーバー名をメッセージ ID の一部として含めることができます。サーバー名を省略した場合は、ローカル サーバーと見なされます。複数の受信者に送信されるメッセージは、複数のキューに存在する可能性があります。ワイルドカード文字を使用すると、メッセージがルーティングされたすべてのキューでメッセージを検索するよう指定することができます。表 3 は、有効なメッセージ ID の例を示しています。

表 3   メッセージ ID の形式

メッセージ ID の形式 用途

Server\QueueJetId\MessageJetID

キュー内のメッセージの完全な名前。

Server\Poison\MessageJetID

有害なメッセージ キュー内のメッセージ。

MessageJetID

この JET データベース ID を持ち、ローカル サーバー上の任意のキューにルーティングされるすべてのメッセージ (1 つのメッセージが複数のキューにルーティングされます)。

Server\*\MessageJetID

この JET データベース ID を持ち、指定されたサーバー上の任意のキューにルーティングされるすべてのメッセージ。

次のコード例は、Get-Message コマンドレットでメッセージ ID を使用する方法を示しています。この例は、指定された ID を持ち、指定されたサーバー上の任意のキューにあるすべてのメッセージの一覧を返します。また、この例は、詳細な一覧として結果セットの形式を指定します。

Get-message -Identity Server\*\1234 | Format-List

Filter パラメータの使用

キュー タスクでは Filter パラメータがサポートされているため、取得するキューおよびメッセージの条件を指定できます。キューおよびメッセージのプロパティがフィルタ条件として使用されます。キューまたはメッセージの限られたセットを表示するためのフィルタを作成します。監視するキューおよびメッセージを見つけたら、各オブジェクトのプロパティ情報を表示できます。この情報は、メール フローの問題についてトラブルシューティングを行う際に役立ちます。

Filter パラメータを使用して、式に論理演算子および関係演算子を指定し、フィルタ条件を満たすキュー オブジェクトまたはメッセージ オブジェクトのみが表示されるようにします。論理演算子 -and を使用すると、結果が満たす複数の条件を指定できます。-and 演算子を使用する場合は、式に指定されたすべての条件に一致するオブジェクトのみが表示されます。メッセージまたはキューのプロパティのサブセットがフィルタ条件を指定するために使用されます。プロパティを指定する場合、そのプロパティはクエリの対象となるオブジェクトの有効なプロパティである必要があり、一致させる値は正しい構文を使用して表す必要があります。プロパティ値を単一の整数以外で表す場合は、値を引用符で囲んでください。

Server パラメータを、Filter パラメータと共にコマンドに含めることができます。Server パラメータを使用して、サーバー上のキューおよびメッセージに対するクエリを実行して結果セットを取得するために RPC を使用して接続するサーバーのホスト名または FQDN を指定します。

フィルタに使用できるプロパティ、これらのプロパティの正しい構文、およびサポートされる演算子の詳細については、以下のトピックを参照してください。

Queue パラメータの使用

Queue パラメータは、メッセージ コマンドでのみ使用されます。このパラメータを使用して、メッセージが取得されるキューの ID を指定します。キューを指定すると、そのキュー内のすべてのメッセージが取得されます。これにより、フィルタ式を使用せずに、特定のキューからすべてのメッセージを取得することができます。ワイルドカード文字を使用すると、複数のキュー内のメッセージを取得できます。Queue パラメータをメッセージ コマンドで使用するときは、表 2 のキュー ID の形式を使用します。次のコード例は、Queue パラメータを Get-Message コマンドレットで使用する方法を示しています。この例は、指定されたサーバー上にあり、SMTP ドメイン Contoso.com に配信するためにキューに入れられているメッセージのみを含む結果セットを作成します。

Get-message -Queue Server\Contoso.com

高度なページ パラメータの使用

現在のメール フローによっては、キューおよびメッセージに対するクエリがオブジェクトの非常に大きなセットを返すことがあります。高度なページ パラメータを使用すると、クエリ結果の取得および表示方法を制御することができます。

Exchange 管理シェルを使用してキューおよびキュー内のメッセージを表示する場合、クエリは一度に 1 ページの情報を取得します。高度なページ パラメータは、結果セットのサイズを制御し、結果の並べ替えにも使用することができます。高度なページ パラメータはすべて省略可能であり、Get-Queue コマンドレットと Get-Message コマンドレットで使用できるどのパラメータ セットとも組み合わせることができます。高度なページ パラメータを指定しない場合、クエリは ID を昇順に並べて結果を返します。既定では、並べ替えの順序が指定されている場合、メッセージ ID プロパティが常に含まれ、昇順で並べ替えられます。これは順序に関する既定の関係です。並べ替えの順序に含めることができる他のプロパティは一意ではないため、メッセージ ID プロパティが含まれます。並べ替えの順序にメッセージ ID プロパティを明示的に含めることで、結果でメッセージ ID が降順で並べ替えられるように指定することができます。

BookmarkIndex パラメータと BookmarkObject パラメータを使用すると、並べ替えられた結果セット内の位置をマークすることができます。結果の次のページが取得されるときにブックマーク オブジェクトが既に存在しなくなっていた場合は、順序に関する既定の関係により、結果セットはブックマークに最も近いオブジェクトから開始されます。最も近いオブジェクトは、指定されている並べ替えの順序によって異なります。

表 4 は、高度なページ パラメータを示しています。

表 4   高度なページ パラメータ

パラメータ 説明

BookmarkIndex

BookmarkIndex パラメータは、結果の表示が開始される結果セット内の位置を指定します。BookmarkIndex パラメータの値は、全体的な結果セットでの 1 から始まるインデックスです。値が 0 以下の場合は、結果の最初の完全なページが返されます。値が Int.MaxValue に設定されている場合は、結果の最後の完全なページが返されます。

BookmarkObject

BookmarkObject パラメータは、結果の表示が開始される結果セット内のオブジェクトを指定します。ブックマーク オブジェクトを指定すると、オブジェクトは検索の開始場所として使用されます。SearchForward パラメータの値に従って、そのオブジェクトの前または後の行が取得されます。BookmarkObject パラメータと BookmarkIndex パラメータを 1 つのクエリで組み合わせることはできません。

IncludeBookmark

IncludeBookmark パラメータは、結果セットにブックマーク オブジェクトを含めるかどうかを指定します。既定では、この値は $true に設定され、ブックマーク オブジェクトが含まれます。限られた結果サイズのクエリを実行し、その結果セットの最後のアイテムを次のクエリ用のブックマークとして設定する場合があります。この場合、IncludeBookmark$false に設定して、オブジェクトがいずれの結果セットにも含まれないようにすることができます。

ResultSize

ResultSize パラメータは、1 ページに表示する結果の数を指定します。値を指定しない場合は、既定の結果サイズである 1,000 オブジェクトが使用されます。Exchange Server 2007 は結果セットを 250,000 に制限します。

ReturnPageInfo

ReturnPageInfo パラメータは、隠しパラメータです。結果の合計数および現在のページの最初のオブジェクトのインデックスに関する情報を返します。既定値は $false です。

SearchForward

SearchForward パラメータは、結果セット内を順方向に検索するか逆方向に検索するかを指定します。このパラメータは、結果セットが返される順序には影響しません。ブックマーク インデックスまたはオブジェクトを基準にして検索の方向を決定します。ブックマーク インデックスまたはオブジェクトが指定されていない場合、SearchForward パラメータによって、検索が結果セット内の最初のオブジェクトから始まるか最後のオブジェクトから始まるかが決まります。このパラメータの既定値は $true です。SearchForward パラメータが $true に設定され、ブックマークが指定されている場合、クエリはそのブックマークから順方向に検索を行います。この構成を使用していて、ブックマークの先に結果が存在しない場合、クエリは結果の最後のページ全体を返します。SearchForward パラメータが $false に設定され、ブックマークが指定されている場合、クエリはそのブックマークから逆方向に検索を行います。この構成を使用していて、ブックマークより先の結果が 1 ページに満たない場合、クエリは結果の最初のページ全体を返します。

SortOrder

SortOrder パラメータは、結果セットの並べ替えの順序を制御するために使用されるメッセージ プロパティの配列を指定します。並べ替えの順序のプロパティは、優先順位の高い順に指定します。各プロパティはコンマで区切り、昇順で並べ替える場合は + 記号、降順で並べ替える場合は - 記号を付加します。このパラメータを使用して明示的な並べ替えの順序が指定されていない場合は、クエリに一致するレコードが表示され、個別のオブジェクトの種類の Identity フィールドによって並べ替えられます。並べ替えの順序が明示的に指定されていない場合、結果は常に ID によって昇順で並べ替えられます。

次のコード例は、クエリで高度なページ パラメータを使用する方法を示しています。この例では、コマンドは、指定されたサーバーに接続し、500 オブジェクトを含む結果セットを取得します。結果は並べ替えられた順序で表示されます。まず送信者アドレスによって昇順で並べ替えられてから、メッセージ サイズによって降順で並べ替えられます。

Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size

次に続くページを表示する場合は、結果セットで取得される最後のオブジェクトに対してブックマークを設定し、追加のクエリを実行します。この手順を実行するには、Exchange 管理シェルのスクリプト機能を使用する必要があります。

次の例は、スクリプトを使用して、結果の最初のページを取得し、ブックマーク オブジェクトを設定し、結果セットからブックマーク オブジェクトを除外し、指定されたサーバー上で次の 500 オブジェクトを取得しています。

例 : スクリプトを使用してブックマーク オブジェクトを設定する方法

  1. Exchange 管理シェルを開き、次のコマンドを入力して結果の最初のページを取得します。

    $Results=Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size
    
  2. ブックマーク オブジェクトを設定するには、次のコマンドを入力して、最初のページの最後の要素を変数に保存します。

    $temp=$results[$results.length-1]
    
  3. 指定されたサーバー上で次の 500 オブジェクトを取得し、ブックマーク オブジェクトを除外するには、次のコマンドを入力します。

    Get-message -Server Exchange.Contoso.com -BookmarkObject:$temp -IncludeBookmark $False -ResultSize 500 -SortOrder +FromAddress,-Size
    

詳細情報

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。