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

 

適用先: Exchange Server 2010 SP2, Exchange Server 2010 SP3

トピックの最終更新日: 2015-03-09

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

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

キューに関連する管理タスクについては、「トランスポート キューの管理」を参照してください。

目次

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

キューのコマンドレット

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

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

キュー タスクは、2 つのカテゴリに分類されます。

  • 表示操作では、サーバー上のキューおよびキューにあるメッセージを表示し、表示する際のデータのグループ化や並べ替えの方法を選択することができます。

  • キューおよびメッセージのステータスを変更する変更操作。

どちらの種類のタスクも、リモート プロシージャ コール (RPC) を使用してトランスポート ワーカー プロセスに接続し、データにアクセスします。

既定では、キュー ビューアーは、自身がタスクを実行するために接続するサーバー上のキュー データベースを対象としています。ただし、キュー ビューアーのタスクを実行しているサーバーとは別のサーバーに接続することができます。

Exchange 2010 トランスポート プロセスの詳細については、「トランスポート パイプラインについて」を参照してください。シェルを使用してキューおよびメッセージを表示する方法の詳細については、「キューの表示」および「キューに入っているメッセージのプロパティの表示」を参照してください。

ページのトップへ

キューのコマンドレット

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

キューのコマンドレット

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

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 2010 トランスポート サーバー上のキューにあるメッセージの配信を中断します。

Suspend-Message

メッセージを中断する

Suspend-Queue

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

Suspend-Queue

キューを中断する

ページのトップへ

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

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

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

メッセージまたはキューを変更するコマンドを使用するときは、Identity、Filter、または Queue のパラメーター セットを使用する必要があります。パラメーターを指定しない場合、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 の形式を次の表に示します。

キュー 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 は、メッセージがキューの Extensible Storage Engine (ESE) データベース (以前の JET) に入るときにメッセージに割り当てられ、その整数がキュー ID に付加されてメッセージ ID が作成されます。

データベース ID を指定してメッセージに対する操作を行うには、まず Get-Message コマンドレットを実行する必要があります。結果で ID が返されます。リモート サーバーに接続する場合は、サーバー名をメッセージ ID の一部として含めることができます。サーバー名を省略した場合は、ローカル サーバーと見なされます。

複数の受信者に送信されるメッセージは、複数のキューに存在する可能性があります。ワイルドカード文字を使用すると、メッセージがルーティングされたすべてのキューでメッセージを検索するよう指定することができます。次の表は、有効なメッセージ ID の例を示しています。

メッセージ ID の形式

メッセージ ID の形式 用途

Server\QueueJetId\MessageJetID

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

Server\Poison\MessageJetID

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

MessageJetID

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

Server\*\MessageJetID

このデータベース 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 パラメーターを使用する場合、このトピックで前述した「キュー ID」の表からキュー ID の形式を使用します。次のコード例は、Queue パラメーターを Get-Message コマンドレットで使用する方法を示しています。この例は、指定されたサーバー上にあり、SMTP ドメイン Contoso.com に配信するためにキューに入れられているメッセージのみを含む結果セットを作成します。

Get-message -Queue Server\Contoso.com

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

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

シェルを使用してキューおよびキュー内のメッセージを表示する場合、クエリは一度に 1 ページの情報を取得します。高度なページ パラメーターは、結果セットのサイズを制御し、結果の並べ替えにも使用することができます。高度なページ パラメーターはすべて省略可能であり、Get-Queue コマンドレットと Get-Message コマンドレットで使用できるどのパラメーター セットとも組み合わせることができます。高度なページ パラメーターを指定しない場合、クエリは ID を昇順に並べて結果を返します。

既定では、並べ替えの順序が指定されている場合、メッセージ ID プロパティが常に含まれ、昇順で並べ替えられます。これは順序に関する既定の関係です。並べ替えの順序に含めることができる他のプロパティは一意ではないため、メッセージ ID プロパティが含まれます。並べ替えの順序にメッセージ ID プロパティを明示的に含めることで、結果でメッセージ ID が降順で並べ替えられるように指定することができます。

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

次の表で、高度なページ パラメーターの説明を示します。

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

パラメーター 説明

BookmarkIndex

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

BookmarkObject

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

IncludeBookmark

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

ResultSize

ResultSize パラメーターは、1 ページに表示する結果の数を指定します。値を指定しない場合は、既定の結果サイズである 1,000 オブジェクトが使用されます。Exchange 2010 では結果セットは 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

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

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

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

    $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
    

ページのトップへ

 © 2010 Microsoft Corporation.All rights reserved.