Exchange PowerShell コマンドの受信者 フィルター
Exchange 管理シェルのコマンドレットと PowerShell l Exchange Onlineでは、受信者関連のコマンドレットでさまざまな種類のフィルターがサポートされています。
- 事前に設定されたフィルター。
- RecipientFilter パラメーターを使用したカスタム フィルター。
- Filter パラメーターを使用したカスタム フィルター 。
- ContentFilter パラメーターを使用したカスタム フィルター。
以前のバージョンの Exchange では、LDAP フィルター構文を使用して、カスタム アドレス一覧、グローバル アドレス一覧 (GAL)、電子メール アドレス ポリシー、配布グループを作成しました。 OPATH フィルタリング構文は、2007 年Exchange Server以降の LDAP フィルタリング構文に置き換えられました。
既定のフィルター
事前設定されたフィルターでは、Exchange の一般的なプロパティを使用して、動的配布グループ、電子メール アドレス ポリシー、アドレス一覧、または GAL の受信者をフィルター処理します。 事前に設定されたフィルターを使用すると、Exchange PowerShell または Exchange 管理センター (EAC) を使用できます。 事前に設定されたフィルターを使用して、次のタスクを実行できます。
- 受信者のスコープを指定します。
- 会社、部署、州や地域などの一般的なプロパティに基づいて条件付きフィルター処理を追加します。
- 受信者のカスタム属性を追加します。 詳細については、「Custom Attributes」を参照してください。
次のパラメーターは、既定のフィルターと見なされます。
- IncludedRecipients
- ConditionalCompany
- ConditionalDepartment
- ConditionalStateOrProvince
- ConditionalCustomAttribute1 から ConditionalCustomAttribute15。
事前に使用できるフィルターは、次のコマンドレットで使用できます。
事前に設定されたフィルターの例
この例では、Exchange 管理シェルで事前に設定されたフィルターを使用して動的配布グループを作成する方法について説明します。 この例の構文は、電子メール アドレス ポリシー、アドレス一覧、または GAL の作成に使用する構文と似ていますが、同じではありません。 既定のフィルターを作成する際には、次の内容を確認する必要があります。
受信者 ( RecipientContainer パラメーター) を含める組織単位 (OU) はどれですか?
注:
この目的で OU を選択することは、動的配布グループの作成にのみ適用され、メール アドレス ポリシー、アドレス一覧、または CAL の作成には適用されません。
含める受信者の種類 ( IncludedRecipients パラメーター)
フィルターに含める追加の条件 ( ConditionalCompany、 ConditionalDepartment、 ConditionalStateOrProvince、 ConditionalCustomAttribute パラメーター)
この例では、次のプロパティを使用して動的配布グループを作成します。
- 名前: Contoso Finance。
- 受信者の種類: ユーザー メールボックス。
- 受信者の場所: Contoso.com/Users という名前の OU。
- フィルター 部署 属性が 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 として定義された Company 属性を持つ受信者と、北の建物として定義されている Office 属性のみを含めます。
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 パラメーターは、次の受信者コマンドレットで使用できます。
- Get-CASMailbox
- Get-Contact
- Get-DistributionGroup
- Get-DynamicDistributionGroup
- Get-Group
- Get-Mailbox
- Get-MailContact
- Get-MailPublicFolder
- Get-MailUser
- Get-Recipient
- Get-RemoteMailbox
- Get-SecurityPrincipal
- Get-UMMailbox
- Get-User
- Get-UnifiedGroup
Filter パラメーターで使用できるフィルター可能なプロパティの詳細については、「 Filter パラメーターの フィルター可能なプロパティ」を参照してください。
フィルター パラメーターの例
この例では、 Filter パラメーターを使用して、タイトルに "manager" という単語が含まれているユーザーに関する情報を返します。
Get-User -Filter "Title -like 'Manager*'"
カスタム フィルター (ContentFilter パラメーターを使用)
ContentFilter パラメーターを使用して特定のメッセージ内容を選択し、これを New-MailboxExportRequest コマンドレットの使用時にエクスポートできます。 コンテンツ フィルターと一致する内容を含むメッセージが見つかると、そのメッセージが .pst ファイルにエクスポートされます。
ContentFilter パラメーターの例
次の使用例は、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 フィルター全体を二重引用符または中かっこで囲みます
システム値: OPATH フィルター全体を単一引用符または中かっこで囲みます (例:
'HiddenFromAddressListsEnabled -eq $true'
)。 ドル記号システム値をエスケープする場合は、OPATH フィルター全体を二重引用符 (例:"HiddenFromAddressListsEnabled -eq `$true"
) で囲むこともできます。
検索条件の互換性と、OPATH フィルター全体を囲むのに使用できる有効な文字を次の表にまとめます。
Search値 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 Online PowerShell のフィルター パラメーターでワイルドカード プレフィックスが機能する場合でも、パフォーマンスの問題が少ないため、使用することはお勧めしません。
使用できる演算子の詳細については、次を参照してください。
受信者フィルターのドキュメント
次の表に、Exchange 受信者コマンドで使用できるフィルター可能なプロパティの詳細を確認するための記事へのリンクを示します。
記事 | 説明 |
---|---|
Exchange コマンドレットの RecipientFilter パラメーターのフィルター可能なプロパティ | RecipientFilter パラメーターで使用できるフィルター可能なプロパティの詳細について説明します。 |
Exchange コマンドレットの Filter パラメーターのフィルター可能なプロパティ | Filter パラメーターで使用できるフィルター可能なプロパティの詳細について説明します。 |
Exchange Online PowerShell モジュールのフィルター | Exchange Online PowerShell モジュールの 9 つの排他的な Get-EXO* コマンドレットのフィルターに関する考慮事項について説明します。 |