Exchange Online PowerShell 命令中的收件者篩選
Exchange 管理命令介面和 Exchange Online PowerShelll 中的 Cmdlet 支援收件者相關 Cmdlet 中不同類型的篩選:
- 預先掃描的篩選條件。
- 使用 RecipientFilter 參數的自定義篩選。
- 使用 Filter 參數的自定義 篩選 。
- 使用 ContentFilter 參數的自定義篩選。
舊版 Exchange 使用 LDAP 篩選語法來建立自定義通訊清單、全域通訊清單 (GAL) 、電子郵件地址原則和通訊群組。 從 2007 Exchange Server 開始,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 Finance。
- 收件者類型:使用者信箱。
- 收件者位置:名為 Contoso.com/Users 的 OU。
- 過濾器 僅包含已將 Department 屬性定義為 Finance 的收件者,以及定義為 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。
- 收件者類型:使用者信箱。
- 收件者位置:名為 Contoso.com/Users 的 OU。
- 過濾器 只包含已將 公司 屬性定義為 Contoso 的收件者,以及定義為 North Building 的 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 Cmdlet。 如需伺服器端和客戶端篩選的詳細資訊,請參閱 使用命令輸出中的。
若要尋找具有 Filter 參數之 Cmdlet 的可篩選屬性,您可以對物件執行 Get 命令,並使用管線將 Format-List 參數格式 化輸出。 大部分傳回的值都可以在 Filter 參數中使用。
下列範例會傳回信箱 Ayla 的詳細清單。
Get-Mailbox -Identity Ayla | Format-List
Filter 參數適用於下列收件者 Cmdlet:
- 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 參數的自定義篩選
使用 New-MailboxExportRequest Cmdlet 時,您可以使用 ContentFilter 參數來選取要導出的特定郵件內容。 如果命令找到包含符合內容篩選條件的訊息,則會將訊息匯出至 .pst 檔案。
ContentFilter 參數範例
此範例會建立一個匯出要求,以搜尋 Ayla 的信箱是否有內文包含片語「公司潛在客戶」的郵件。如果找到該片語,命令會將具有該片語的所有訊息匯出至 .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 篩選條件的字元。系統值:請勿將系統值括 (例如 、
$true
$false
或$null
) 。 若要以雙引弧括住整個 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 參數的可篩選屬性 | 深入瞭解 Filter 參數可用 的可篩選屬性。 |
Exchange Online PowerShell 模組中的篩選 | 瞭解 Exchange Online PowerShell 模組中九個獨佔 Get-EXO* Cmdlet 中篩選的考慮。 |