Exchange PowerShell コマンドの受信者 フィルター

Exchange 管理シェルExchange Online PowerShellのコマンドレットは、受信者関連のコマンドレットでさまざまな種類のフィルターをサポートしています。

  • 固定フィルター。
  • RecipientFilter パラメーターを使用したカスタム フィルター。
  • Filter パラメーターを使用したカスタム フィルター。
  • ContentFilter パラメーターを使用したカスタム フィルター。

以前のバージョンの Exchange では、LDAP フィルター構文を使用して、カスタム アドレス一覧、グローバル アドレス一覧 (GAL)、電子メール アドレス ポリシー、配布グループを作成しました。 OPATH フィルター構文は、Exchange Server 2007 以降の LDAP フィルター構文に置き換えられました。

既定のフィルター

事前設定されたフィルターは、Exchange の人気のあるプロパティを使用して、動的な配布グループ、電子メール アドレス ポリシー、アドレス一覧、または GAL の受信者をフィルター処理します。 あらかじめ設定されているフィルターを使用すると、Exchange PowerShell または Exchange 管理センター (EAC) のいずれかを使用できます。 あらかじめ固定されているフィルターを使用して、次のタスクを実行できます。

  • 受信者のスコープを指定します。
  • 会社、部署、都道府県などの共通プロパティに基づく条件付きフィルターを追加します。
  • 受信者のカスタム属性を追加します。 詳細については、「Custom Attributes」を参照してください。

次のパラメーターは、既定のフィルターと見なされます。

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 から ConditionalCustomAttribute15 に変更します。

次のコマンドレットで事前固定フィルターを使用できます。

事前保存フィルターの例

この例では、Exchange 管理シェルで事前固定フィルターを使用して動的配布グループを作成する方法について説明します。 この例の構文は、電子メール アドレス ポリシー、アドレス一覧、または GAL の作成に使用する構文と似ていますが、同じではありません。 既定のフィルターを作成する際には、次の内容を確認する必要があります。

  • 受信者を含める組織単位 (OU) ( RecipientContainer パラメーター))

    注:

    この目的での OU の選択は、動的な配布グループの作成にのみ適用され、電子メール アドレス ポリシー、アドレス一覧、GAL の作成には適用されません。

  • どの種類の受信者を含める ( IncludedRecipients パラメーター)か?

  • フィルターに含めたいその他の条件 ( ConditionalCompanyConditionalDepartmentConditionalStateOrProvinceおよび ConditionalCustomAttribute パラメーター)?

この例では、次のプロパティを持つ動的配布グループを作成します。

  • 名前: Contoso Finance。
  • 受信者の種類: ユーザー メールボックス。
  • 受信者の場所: Contoso.com/Users という名前の OU。
  • フィルターDepartment 属性が Finance として定義され、Company 属性が Contoso として定義されている受信者のみを含めます。
New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"

この例では、この新しい動的配布グループのプロパティを表示します。

Get-DynamicDistributionGroup -Identity "Contoso Finance" | Format-List Recipient*,Included*

カスタム フィルター (RecipientFilter パラメーターを使用)

事前設定されたフィルターではニーズが満たされない場合は、 RecipientFilter パラメーターを使用してカスタム フィルターを作成できます。 このパラメーターは、次のコマンドレットで使用できます。

RecipientFilter パラメーターで使用できるフィルター可能なプロパティの詳細については、「RecipientFilter パラメーターのフィルター可能なプロパティ」を参照してください。

カスタム フィルターの例

次の例では、RecipientFilter パラメーターを使用して動的配布グループを作成します。 この例の構文は、電子メール アドレス ポリシー、アドレス一覧、または GAL の作成に使用する構文と似ていますが、同じではありません。

この例では、カスタム フィルターを使用して、次のプロパティを持つ動的配布グループを作成します。

  • 名前: AllContosoNorth。
  • 受信者の種類: ユーザー メールボックス。
  • 受信者の場所: Contoso.com/Users という名前の OU。
  • フィルター会社属性が Contoso として定義され、Office 属性が North Building として定義されている受信者のみを含めます。
New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientTypeDetails -eq 'UserMailbox') -and (Company -eq 'Contoso') -and (Office -eq 'North Building'))"

カスタム フィルター (Filter パラメーターを使用)

Filter パラメーターを使用してコマンドの結果をフィルター処理し、取得するオブジェクトを指定できます。 たとえば、すべてのユーザーまたはグループを取得する代わりに、フィルター文字列を使用してユーザーまたはグループのセットを指定できます。 この種類のフィルターでは、オブジェクトの構成や属性は変更されません。 変更されるのは、コマンドから返されるオブジェクトのセットだけです。

Filter パラメーターを使用してコマンドの結果を変更することは、サーバー側フィルターと呼ばれます。 サーバー側フィルタリングでは、コマンドとフィルタをサーバーに送信して処理します。 また、コマンドがサーバーからすべてのオブジェクトを取得し、ローカル コンソール ウィンドウにフィルターを適用するクライアント側フィルターもサポートされています。 クライアント側のフィルター処理を実行するには、 Where-Object コマンドレットを使用します。 サーバー側およびクライアント側のフィルター処理の詳細については、「 コマンド出力の操作」の「データのフィルター処理方法」を参照してください。

Filter パラメーターが含まれるコマンドレットのフィルター可能なプロパティを検索するには、オブジェクトに対して Get コマンドを実行し、Format-List パラメーターによりパイプライン処理して出力をフォーマットします。 返される値のほとんどは、 Filter パラメーターで使用できます。

次の例では、メールボックス "Ayla" の詳細リストを返します。

Get-Mailbox -Identity Ayla | Format-List

フィルター パラメーターは、次の受信者コマンドレットで使用できます。

Filter パラメーターで使用できるフィルター可能なプロパティの詳細については、「Filter パラメーターのフィルター可能なプロパティ」を参照してください。

フィルター パラメーターの例

この例では、 Filter パラメーターを使用して、タイトルに "マネージャー" という単語が含まれるユーザーに関する情報を返します。

Get-User -Filter "Title -like 'Manager*'"

カスタム フィルター (ContentFilter パラメーターを使用)

ContentFilter パラメーターを使用して特定のメッセージ内容を選択し、これを New-MailboxExportRequest コマンドレットの使用時にエクスポートできます。 コンテンツ フィルターと一致する内容を含むメッセージが見つかると、そのメッセージが .pst ファイルにエクスポートされます。

ContentFilter パラメーターの例

この例では、本文に "company prospectus" という語句が含まれるメッセージを Ayla のメールボックスで検索するエクスポート要求を作成します。その語句が見つかった場合、コマンドはその語句を含むすべてのメッセージを .pst ファイルにエクスポートします。

New-MailboxExportRequest -Mailbox Ayla -ContentFilter "Body -like 'company prospectus*'"

ContentFilter パラメーターで使用できるフィルター可能なプロパティの詳細については、「ContentFilter パラメーターのフィルター可能なプロパティ」を参照してください。

OPATH 構文の追加情報

独自のカスタム OPATH フィルターを作成する場合は、次の点を考慮してください。

  • 次の構文を使用して、検索する値の型を特定します。

    • テキスト値: テキストを単一引用符で囲みます (例: 'Value''Value with spaces')。 または、テキスト値を二重引用符で囲むこともできますが、OPATH フィルター全体を囲むために使用できる文字数は制限されます。

    • 変数: 展開する必要がある変数 ( '$User' など) を単一引用符で囲みます。 変数値自体に単一引用符が含まれている場合、単一引用符を識別 (エスケープ) して変数を正しく展開する必要があります。 たとえば、'$User'の代わりに'$($User -Replace "'","''")'を使用します。

    • 整数値: 整数 ( 500 など) を囲む必要はありません。 多くの場合、整数は単一引用符または二重引用符で囲むことができますが、それによって OPATH フィルター全体で囲むために使用できる文字数が制限されます。

    • システム値: システム値 ( $true$false$null など) を囲まないでください。 OPATH フィルター全体を二重引用符で囲むには、ドル記号のシステム値 ( `$true など) をエスケープする必要があります。

  • OPATH フィルター全体を二重引用符 " " または単一引用符 " ' で囲む必要があります。 OPATH フィルター オブジェクトは技術的には文字列であり、スクリプト ブロックではありませんが、中かっこ { } を引き続き使用できますが、フィルターに展開を必要とする変数が含まれていない場合に限ります。 OPATH フィルター全体を囲むために使用できる文字は、検索している値の種類と、それらの値を囲むために使用した (または使用しなかった) 文字によって異なります。

    • テキスト値: 検索対象のテキストをどのように囲んだかによって異なります。

      • 単一引用符で囲んだテキスト: OPATH フィルター全体を二重引用符または中かっこで囲みます。
      • 二重引用符で囲んだテキスト: OPATH フィルター全体を中かっこで囲みます。
    • 変数: OPATH フィルター全体を二重引用符で囲みます (例: "Name -eq '$User'")。

    • 整数値: すべてのケースで機能するように、次のいずれかの方法で囲みます。

      • 単一引用符で囲んだ整数: OPATH フィルター全体を二重引用符または中かっこ "CountryCode -eq '840'"で囲みます。
      • 二重引用符で囲んだ整数: OPATH フィルター全体を中かっこで囲みます (例: {CountryCode -eq "840"})。
    • システム値: OPATH フィルター全体を単一引用符または中かっこで囲みます (例: 'HiddenFromAddressListsEnabled -eq $true')。 ドル記号システム値をエスケープする場合は、OPATH フィルター全体を二重引用符 ( "HiddenFromAddressListsEnabled -eq `$true" など) で囲むこともできます。

    検索条件の互換性と、OPATH フィルター全体を囲むために使用できる有効な文字を次の表にまとめます。

    値の検索 OPATH フィルター
    囲みます
    二重引用符
    OPATH フィルター
    囲みます
    単一引用符
    で囲まれた OPATH フィルター
    中かっこ
    'Text'
    "Text"
    '$Variable'
    500
    '500'
    "500"
    $true
    `$true
  • すべての論理演算子または比較演算子の前にハイフンを含めます。 最も一般的な演算子は次のとおりです。

    • -and
    • -or
    • -not
    • -eq (等しい)
    • -ne (等しくない)
    • -lt (より小さい)
    • -gt (より大きい)
    • -like (文字列比較)
    • -notlike (文字列比較)
  • フィルター可能なプロパティの多くは、ワイルドカード文字を受け入れます。 ワイルドカード文字を使用する場合、 -eq 演算子の代わりに -like 演算子を使用します。 -like 演算子を使用して、リッチな型 (文字列など) でパターンの一致を検索します。 完全一致を見つけるには、 -eq 演算子を使用します。

    Exchange Online PowerShell で -like 演算子を使用する場合、ワイルドカード文字はほとんどのパラメーターでサフィックスとしてのみサポートされます。 たとえば、"Department -like 'sales*'" は使用できますが、"Department -like '*sales'" は使用できません。

    ヒント

    Exchange Online PowerShell のフィルター パラメーターでワイルドカード プレフィックスが機能する場合でも、パフォーマンスが低い問題があるため、使用することはお勧めしません。

  • 使用できる演算子の詳細については、次を参照してください。

受信者フィルターのドキュメント

次の表に、Exchange 受信者コマンドで使用できるフィルター可能なプロパティの詳細を確認するのに役立つ記事へのリンクを示します。

記事 説明
Exchange コマンドレットの RecipientFilter パラメーターのフィルター可能なプロパティ RecipientFilter パラメーターで使用できるフィルター可能なプロパティの詳細については、こちらを参照してください。
Exchange コマンドレットのフィルター パラメーターのフィルター可能なプロパティ フィルター パラメーターで 使用できるフィルター可能なプロパティの詳細については、こちらを参照してください。
Exchange Online PowerShell モジュールのフィルター Exchange Online PowerShell モジュールの 9 つの排他的な Get-EXO* コマンドレットのフィルターに関する考慮事項について説明します。