PowerShell 命令Exchange中的收件人筛选器

Exchange命令行管理程序Exchange Online PowerShell 中的 cmdlet 支持收件人相关 cmdlet 中的各种筛选器:

  • 固有筛选器
  • 使用 RecipientFilter 参数的自定义 筛选器
  • 使用 Filter 参数的 自定义 筛选器
  • 使用 ContentFilter 参数的自定义筛选器

较旧版本的 Exchange 使用 LDAP 筛选语法来创建自定义地址列表、全局地址列表 (GAL)、电子邮件地址策略和通讯组。 从 2007 年 9 月开始,OPATH 筛选语法Exchange Server LDAP 筛选语法。

固有筛选器

"预扫描"筛选器是一种常用的Exchange筛选器,可用于满足各种收件人筛选条件,用于创建动态通讯组、电子邮件地址策略、地址列表或 GAL。 使用预扫描筛选器,可以使用 Exchange PowerShell 或 Exchange 管理 (EAC) 。 使用固有筛选器,可以执行下列操作:

  • 确定收件人的范围。
  • 根据属性(如公司、部门和国家/地区)添加有条件的筛选。
  • 添加收件人的自定义属性。有关详细信息,请参阅Custom Attributes

下列参数视为固有筛选器:

  • IncludedRecipients
  • ConditionalCompany
  • ConditionalDepartment
  • ConditionalStateOrProvince
  • ConditionalCustomAttribute1ConditionalCustomAttribute15

固有筛选器适用于下列 cmdlet:

预扫描筛选器示例

本示例介绍如何在命令行管理程序Exchange预扫描筛选器来创建动态通讯组。 本示例中的语法与用于创建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。 创建固有筛选器时,应提出下列问题:

  • 您希望包含哪个组织单位 (OU) 中的收件人?(此问题对应于 RecipientContainer 参数。)

    备注

    为此选择的 OU 仅适用于创建动态通讯组,不适用于创建电子邮件地址策略、地址列表或 GAL。

  • 您希望包含哪种类型的收件人?(此问题对应于 IncludedRecipients 参数。)

  • 您希望在筛选器中包含哪些其他条件?(此问题对应于 ConditionalCompanyConditionalDepartmentConditionalStateOrProvinceConditionalCustomAttribute 参数。)

本示例为 OU Contoso.com/Users 中的用户邮箱创建动态通讯组 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 参数创建自定义筛选器。

收件人筛选器参数适用于下列 cmdlet:

有关可用于 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 cmdlet。 有关服务器端筛选和客户端筛选的详细信息,请参阅Working with Command Output中的“如何筛选数据”。

若要为具有 Filter 参数的 cmdlet 查找可筛选属性,可以对对象运行 Get 命令并通过管道传递 Format-List 参数来设置输出格式。大多数返回值将可以在 Filter 参数中使用。以下示例返回邮箱 Ayla 的详细列表。

Get-Mailbox -Identity Ayla | Format-List

Filter 参数可用于以下收件人 cmdlet:

有关可用于 Filter 参数的可筛选属性详细信息,请参阅Filter 参数的Filterable 属性

示例

本示例使用 Filter 参数返回有关 title 包含单词 "manager" 的用户的信息。

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' '$($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 (字符串比较)
  • 许多可筛选属性都接受通配符。 如果使用通配符,请使用 -like 运算符而不是 -eq 运算符。 使用 -like 运算符可查找多种类型(例如,字符串 (类型的模式) 。 使用 -eq 运算符可查找完全匹配项。

    在 PowerShell 中Exchange Online -like 运算符时,仅支持通配符作为后缀。 例如, "Department -like 'sales*'" 允许 ; "Department -like '*sales'" 不允许。

  • 有关可使用的运算符详细信息,请参阅:

收件人筛选器文档

下表包含指向可帮助您了解有关可用于收件人命令的可筛选属性Exchange的链接。



文章 说明
Exchange cmdlet 上的 RecipientFilter 参数的可筛选属性 详细了解可用于 RecipientFilter 参数的可筛选属性。
Exchange cmdlet 上的 Filter 参数的可筛选属性 详细了解可用于 Filter 参数的可 筛选 属性。
EXO V2 模块中的筛选器 了解使用 PowerShell V2 模块Exchange Online PowerShell 时筛选器Exchange Online注意事项。