Exchange Online PowerShell 命令中的收件者篩選

Exchange 管理命令介面和 Exchange Online PowerShell 中的 Cmdlet 在收件者相關 Cmdlet 中支援不同類型的篩選:

  • 預先儲存的篩選。
  • 使用 RecipientFilter 參數的自訂篩選。
  • 使用 Filter 參數的自訂篩選。
  • 使用 ContentFilter 參數的自訂篩選。

舊版 Exchange 使用 LDAP 篩選語法來建立自訂通訊清單、全域通訊清單 (GAL) 、電子郵件地址原則,以及通訊群組。 從 Exchange Server 2007 開始,OPATH 篩選語法已取代 LDAP 篩選語法。

預先儲存篩選

預先儲存篩選使用 Exchange 中的常用屬性,篩選動態通訊群組、電子郵件地址原則、通訊清單或 GAL 的收件者。 有了預先設定的篩選,您就可以使用 Exchange PowerShell 或 Exchange 系統管理中心 (EAC) 。 使用預先儲存的篩選,您可以執行下列工作:

  • 決定收件者的範圍。
  • 根據常見屬性,例如公司、部門和州/地區等新增條件式篩選。
  • 新增收件者的自訂屬性。 如需詳細資訊,請參閱 自訂屬性。

下列參數被視為預先儲存篩選:

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1 變更為 ConditionalCustomAttribute15。

下列 cmdlet 提供預先儲存篩選條件:

預先儲存篩選範例

此範例說明如何在 Exchange 管理命令介面中使用預先儲存篩選來建立動態通訊群組。 此範例中的語法與您將用來建立電子郵件地址原則、通訊清單或 GAL 的語法相似,但並不完全相同。 建立預先儲存篩選時,您應該詢問下列問題:

  • 您想要從哪個組織單位 (OU) 包含收件者 (RecipientContainer 參數) ?

    注意事項

    為此目的選取 OU 僅適用於建立動態通訊群組,不適用於建立電子郵件地址原則、通訊清單或 GAL。

  • 您想要在 IncludedRecipients 參數) (包含哪些類型的收件者?

  • 您想要在 篩選 (ConditionalCompany、 ConditionalDepartment、 ConditionalStateOrProvince 和 ConditionalCustomAttribute 參數) 包含哪些額外條件?

本範例建立具有下列屬性的動態通訊群組:

  • 名稱:Contoso 財務。
  • 收件者類型:使用者信箱。
  • 收件者位置:OU 名稱為 Contoso.com/Users。
  • 篩選器 僅包括 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 參數來建立自訂篩選。 此參數可在下列 cmdlet 上使用:

如需可與 RecipientFilter 參數搭配使用的可篩選屬性的詳細資訊,請參閱 RecipientFilter 參數的可篩選屬性。

自訂篩選範例

下列範例使用 RecipientFilter 參數來建立動態通訊群組。 此範例中的語法與您用來建立電子郵件地址原則、通訊清單或 GAL 的語法相似,但並不完全相同。

此範例使用自訂篩選來建立具有下列屬性的動態通訊群組:

  • 名稱:AllContosoNorth。
  • 收件者類型:使用者信箱。
  • 收件者位置:OU 名稱為 Contoso.com/Users。
  • 篩選器 僅包括 公司 屬性定義為 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 Cmdlet。 有關伺服器端和用戶端篩選的詳細資訊,請參閱 使用命令輸出中的「如何篩選資料」。

若要尋找具有 Filter 參數之 Cmdlet 的可篩選屬性,您可以針對物件執行 Get 命令,並透過管線處理 Format-List 參數來格式化輸出。 大部分的傳回值都可用於 Filter 參數。

下列範例會傳回信箱 Ayla 的詳細清單。

Get-Mailbox -Identity Ayla | Format-List

Filter 參數適用於下列收件者 Cmdlet:

如需可與 Filter 參數搭配使用的可篩選屬性的詳細資訊,請參閱 Filter 參數的可篩選屬性。

篩選參數範例

此範例使用 Filter 參數來傳回標題中含有「經理」一詞之使用者的相關資訊。

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

使用 ContentFilter 參數的自訂篩選

使用 New-MailboxExportRequest Cmdlet 時,您可以使用 ContentFilter 參數來選取要匯出的特定郵件內容。 如果命令找到包含與內容篩選相符的訊息,它會將該訊息匯出至 .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 -Replace "'","''")',而不是 '$User'。

    • 整數值:您不需要用整數括住 (500 例如) 。 您通常可以使用單引號或雙引號括住整數,但這會限制您可以用來包圍整個 OPATH 篩選的字元。

    • 系統值:請勿 (例如 、 或 $false$null) 等$true括住系統值。 若要以雙引號括住整個 OPATH 篩選,您必須逸出美元符號系統值 ( `$true 例如) 。

  • 您需要用雙引號 “ ” 或單引號 ' ' 括住整個 OPATH 篩選。 雖然從技術上講,任何 OPATH 篩選物件都是字串而非指令碼區塊,您仍然可以使用括弧 { },但前提是篩選不包含需要擴充的變數。 您可以用來括住整個 OPATH 篩選的字元,取決於您要搜尋的值類型,以及您用來 (或沒有用) 括住這些值的字元:

    • 文字值:取決於您如何括住要搜尋的文字:

      • 以單引號括住的文字:以雙引號或括弧括住整個 OPATH 篩選器。
      • 以雙引號括住的文字:以括弧括住整個 OPATH 篩選器。
    • 變數:以雙引號括住整個 OPATH 篩選 ("Name -eq '$User'" 例如) 。

    • 整數值:若要確保它們在所有情況下都正常運作,請使用下列其中一種方式將它們括住:

      • 以單引號括住的整數:以雙引號或括弧"CountryCode -eq '840'"括住整個 OPATH 篩選器。
      • 以雙引號括住的整數:將整個 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 (字串比較)
  • 許多可篩選的屬性都接受萬用字元。 如果您使用萬用字元,請使用 -like 運算子,而不要使用 -eq 運算子。 使用 -like 運算子來尋找豐富類型中的模式比對 (例如字串) 。 使用 -eq 運算子來尋找完全相符的項目。

    當您在 Exchange Online PowerShell 中使用 -like 運算子時,在大多數參數中僅支援萬用字元做為尾碼。 例如, "Department -like 'sales*'" 是允許,但 "Department -like '*sales'" 不允許。

    提示

    即使萬用字元首碼在 Exchange Online PowerShell 的篩選參數中運作,我們也不建議使用它,因為效能問題低。

  • 如需有關您可以使用的運算子詳細資訊,請參閱:

收件者篩選文件

下表包含文章連結,協助您深入瞭解可與 Exchange 收件者命令搭配使用的可篩選屬性。

文章 描述
Exchange cmdlet 上 RecipientFilter 參數的可篩選屬性 深入了解適用於 RecipientFilter 參數的可篩選屬性。
Exchange cmdlet 上篩選參數的可篩選屬性 深入了解適用於 Filter 參數的可篩選屬性。
Exchange Online PowerShell 模組中的篩選條件 瞭解 Exchange Online PowerShell 模組中九個獨佔的 Get-EXO* Cmdlet 篩選條件的考量。