Exchange 命令行管理程序和 Exchange Online PowerShell中的 cmdlet 在与收件人相关的 cmdlet 中支持不同类型的筛选器:
- 预设筛选器。
- 使用 RecipientFilter 参数的自定义筛选器。
- 使用 Filter 参数的自定义筛选器。
- 使用 ContentFilter 参数的自定义筛选器。
较旧版本的 Exchange 使用 LDAP 筛选语法来创建自定义地址列表、全局地址列表 (GAL)、电子邮件地址策略和通讯组。 从 Exchange Server 2007 开始,OPATH 筛选语法取代了 LDAP 筛选语法。
固有筛选器
预设筛选器使用 Exchange 中的常用属性筛选动态通讯组、电子邮件地址策略、地址列表或 GAL 的收件人。 通过预设筛选器,可以使用 Exchange PowerShell 或 Exchange 管理中心 (EAC) 。 使用预设筛选器,可以执行以下任务:
- 确定收件人的范围。
- 根据常见属性(如公司、部门、州/地区)添加条件筛选。
- 添加收件人的自定义属性。 有关详细信息,请参阅Custom Attributes。
下列参数视为固有筛选器:
- IncludedRecipients
- ConditionalCompany
- ConditionalDepartment
- ConditionalStateOrProvince
- ConditionalCustomAttribute1 到 ConditionalCustomAttribute15。
预设筛选器在以下 Cmdlet 上可用:
预设筛选器示例
此示例介绍如何在 Exchange 命令行管理程序中使用预设筛选器创建动态通讯组。 本示例中的语法与用于创建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。 创建固有筛选器时,应提出下列问题:
您想 (哪个组织单位的 OU) 中包含 (RecipientContainer 参数) 的收件人?
注意
为此目的选择 OU 仅适用于创建动态通讯组,而不适用于创建电子邮件地址策略、地址列表或 GAL。
要在 IncludedRecipients 参数) (包括哪些类型的收件人?
要在筛选器 (ConditionalCompany、 ConditionalDepartment、 ConditionalStateOrProvince 和 ConditionalCustomAttribute 参数) 包括哪些附加条件?
此示例创建具有以下属性的动态通讯组:
- 名称:Contoso Finance
- 收件人类型:用户邮箱。
- 收件人位置:名为 Contoso.com/Users 的 OU。
- 筛选器 仅包括将 “部门 ”属性定义为“财务”,将 “公司 ”属性定义为“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”的收件人。
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。 有关服务器端筛选和客户端筛选的详细信息,请参阅Working with Command Output中的“如何筛选数据”。
若要为具有 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'使用'$($User -Replace "'","''")'. 而不是 。整数值:无需将整数括起来 (例如
500) 。 通常可以将整数括在单引号或双引号中,但这会限制可用于括住整个 OPATH 筛选器的字符数。系统值:请勿将系统值括 (例如
$true、 或$false$null) 。 若要用双引号括住整个 OPATH 筛选器,需要转义系统值中的美元符号 (例如`$true) 。
您需要将整个 OPATH 过滤器括在双引号“ ” 或单引号“ '中。 尽管从技术上讲,任何 OPATH 筛选器对象都是字符串而不是脚本块,但仍可以使用大括号 { },但前提是筛选器不包含需要扩展的变量。 可用于括住整个 OPATH 筛选器的字符取决于要搜索的值的类型以及用于 (或未使用) 括住这些值的字符:
文本值:取决于你对搜索文本的封闭方式:
- 括在单引号中的文本:用双引号或大括号括起来整个 OPATH 筛选器。
- 括在双引号中的文本:用大括号括起来整个 OPATH 筛选器。
变量:用双引号 (例如,
"Name -eq '$User'") 将整个 OPATH 筛选器括起来。整数值: 要确保它们在所有情况下都正常工作,请通过以下方式之一将它们括起来:
- 整数括在单引号中:用双引号或大括号
"CountryCode -eq '840'"括起来整个 OPATH 筛选器。 - 用双引号括起来的整数:用大括号 (例如
{CountryCode -eq "840"}) 括住整个 OPATH 筛选器。
- 整数括在单引号中:用双引号或大括号
系统值:请用单引号或大括号 (例如
'HiddenFromAddressListsEnabled -eq $true') 将整个 OPATH 筛选器括起来。 如果转义美元符号系统值,还可以将整个 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 中筛选器的注意事项。 |