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

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

  • 既定のフィルター
  • RecipientFilter パラメーターを使用したカスタム フィルター
  • Filter パラメーターを使用したカスタム フィルター
  • カスタム フィルター (ContentFilter パラメーターを使用)

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

既定のフィルター

事前設定されたフィルターは、動的配布グループ、電子メール アドレス ポリシー、アドレス一覧、または CAL を作成するためのさまざまな受信者フィルター条件を満たすために使用できる、一般的に使用される Exchange フィルターです。 事前に設定されたフィルターを使用すると、Exchange PowerShell または Exchange 管理センター (EAC) を使用できます。 既定のフィルターを使用して、以下の操作を実行することができます。

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

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

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 から ConditionalCustomAttribute15

既定のフィルターは、次のコマンドレットで使用できます。

事前に設定されたフィルターの例

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

  • グループに含める受信者が所属する組織単位 (OU)(これは RecipientContainer パラメーターに対応します。 (この質問は RecipientContainer パラメーターに対応しています)。

    注:

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

  • グループに含める受信者の種類(これは IncludedRecipients パラメーターに対応します。 (この質問は IncludedRecipients パラメーターに対応しています)。

  • フィルターに追加する条件(これは ConditionalCompany、ConditionalDepartment、ConditionalStateOrProvince、および ConditionalCustomAttribute パラメーターに対応します。 (この質問は 、ConditionalCompanyConditionalDepartmentConditionalStateOrProvinceおよび ConditionalCustomAttribute パラメーターに対応しています)。

この例では、"Contoso.com/Users" という OU 内のユーザー メールボックスに "Contoso Finance" という動的配布グループを作成し、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 の作成に使用する構文と似ていますが、同じではありません。

この例では、カスタム フィルターを使用して、Company 属性が "Contoso"、Office 属性が "North Building/北館" と定義されているユーザー メールボックス用の動的配布グループを作成します。

New-DynamicDistributionGroup -Name AllContosoNorth -OrganizationalUnit contoso.com/Users -RecipientFilter "((RecipientType -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 パラメーターの フィルター可能なプロパティ」を参照してください。

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

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

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

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

ContentFilter パラメーターの例

この例では、"Ayla" のメールボックスで本文に "company prospectus/企業目論見書" という語句が含まれるメッセージを検索するエクスポート要求を作成します。 この語句が見つかると、この語句を含むメッセージのすべてが .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 フィルター全体を中かっこで囲みます (例: {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 演算子を使用して、完全一致を見つけます。

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

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

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

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

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