在收件人命令中创建筛选器

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2007-11-15

通过几个 Exchange 命令行管理程序命令,可以筛选一组收件人。使用 Exchange 命令可以进行两种类型的筛选:筛选结果和命令中的筛选属性。

若要筛选结果,必须使用自定义筛选器。要筛选命令中的属性,则可以使用“固有”筛选器或自定义筛选器。

“固有筛选器”是一种常用的 Exchange 2007 筛选器,可用来满足各种收件人筛选条件。例如,固有筛选器具有以下用途:

  • 确定收件人的范围。

  • 根据属性(如公司、部门和国家/地区)添加有条件的筛选。

  • 添加收件人的自定义属性。

如果筛选要求超出了这些参数,则可以使用 OPATH 筛选语法定义一个自定义筛选器,以引用 Exchange 命令行管理程序中的完整属性集。

筛选结果

使用第一种类型的筛选,可以筛选命令的结果。例如,Get-UserGet-RecipientGet-MailboxGet-MailUserGet-ContactGet-MailContactGet-GroupGet-DistributionGroupGet-DynamicDistributionGroup cmdlet 都具有一个 Filter 参数,通过该参数可以指定使用该命令检索的用户或组。您可以通过使用筛选字符串指定一组要检索的用户或组,而不是检索所有的用户或组。这种类型的筛选器不修改对象的任何配置或属性。它只修改命令返回的对象集。

有关可以与 -Filter 参数一起使用的筛选属性的详细信息,请参阅下列主题:

note注意:
使用 Filter 参数修改命令的结果是由服务器端筛选执行的。服务器端筛选将命令和筛选器提交给服务器进行处理。Exchange 命令行管理程序还支持客户端筛选,在客户端筛选中,命令从服务器检索所有对象,然后在本地控制台窗口中应用筛选器。若要执行客户端筛选,请使用 Where-Object cmdlet。有关服务器端筛选和客户端筛选的详细信息,请参阅使用命令输出中的“如何筛选数据”。

筛选命令中的属性

使用第二种类型的筛选,可以指定命令应使用哪些属性。可以使用固有筛选器,也可以创建自己的自定义筛选器。例如,New-DynamicDistributionGroupSet-DynamicDistributionGroupNew-EmailAddressPolicySet-EmailAddressPolicyNew-AddressListSet-AddressListNew-GlobalAddressListSet-GlobalAddressList cmdlet 都具有 IncludedRecipientsConditionalCompanyConditionalDepartmentConditionalStateOrProvince 参数,通过这些参数,可以使用固有筛选器确定命令所应用的用户集。这些 cmdlet 还具有 RecipientFilter 参数,通过该参数,可以创建自己的自定义筛选器。通过固有筛选器或自定义筛选器,可以指定将收件人包含在动态通讯组、电子邮件策略、地址列表或全局地址列表 (GAL) 中。

有关可以与 -RecipientFilter 参数一起使用的筛选属性的详细信息,请参阅下列主题:

创建自定义筛选器

要使用 Filter 参数创建筛选命令结果的自定义筛选器,或者使用 RecipientFilter 参数创建筛选命令中属性的自定义筛选器,必须为筛选器指定一个字符串。Exchange 命令行管理程序在筛选语法中使用 OPath。OPath 是一种为查询对象数据源而设计的查询语言。通过 Exchange 命令行管理程序,您在创建筛选器时,不再需要以往在 Microsoft Exchange Server 2003 中使用的轻型目录访问协议 (LDAP) 的复杂语法。而可以使用更简单的 OPath 语法创建筛选器。

note注意:
要使用固有筛选器创建动态通讯组、电子邮件地址策略、地址列表或 GAL,可以使用 Exchange 管理控制台中的向导或者使用 Exchange 命令行管理程序。若要使用自定义筛选器创建动态通讯组、电子邮件地址策略、地址列表或 GAL,必须同时使用 RecipientFilter 参数和 Exchange 命令行管理程序中相应的 cmdlet。

预定义筛选器示例

本示例介绍如何使用固有筛选器创建动态通讯组。本示例命令中的语法与用于新建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。

使用新建动态通讯组向导创建动态通讯组时,必须选择以下筛选信息:

  • 您希望包含哪个组织单位中的收件人?

    note注意:
    选择要包含其收件人的组织单位仅适用于创建动态通讯组,不适用于创建电子邮件地址策略、地址列表或 GAL。
  • 您希望包含哪种类型的收件人?

  • 您希望在筛选器中包含哪些其他条件?

下列各图显示了新建动态通讯组向导中用于选择筛选器信息的页面。

图 1   新建动态通讯组向导的“筛选器设置”页

“筛选器设置”页

图 2   要选择组织单位,请单击新建动态通讯组向导的“筛选器设置”页面上的“浏览”

“选择组织单位”页

图 3   新建动态通讯组向导的“条件”页面

“条件”页

每个筛选选项都与 New-DynamicDistributionGroup 或者 Set-DynamicDistributionGroup 命令中的一个固有筛选参数相对应。

用于组织单位的第一个筛选选项与命令中的 RecipientContainer 参数相对应。用于收件人类型的第二个筛选选项与 IncludedRecipients 参数相对应。用于其他条件的第三个筛选选项与 ConditionalCompanyConditionalDepartmentConditionalStateOrProvinceConditionalCustomAttribute 参数相对应。

note注意:
OrganizationalUnit 参数指定新建动态通讯组的位置。RecipientContainer 参数是一个筛选器参数,用于指定将添加到动态通讯组的收件人所在的组织单位。

例如,在动态通讯组向导中,可以从 Contoso.com/用户组织单位中选择收件人,选择 UserMailbox 对象,并且选择条件,以仅包含 Department 定义为 Finance 且 Company 定义为 Contoso 的收件人。

要使用 Exchange 命令行管理程序创建相同的动态通讯组,请运行以下命令:

New-DynamicDistributionGroup -Name ContosoFinance -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso"

要查看此新通讯组的属性,请运行以下命令:

Get-DynamicDistributionGroup -Identity ContosoFinance | format-list *Recipient*,Included*

RecipientFilter 属性显示创建该组时使用的 OPath 筛选器语法。RecipientFilterType 属性是 Precanned,这意味着该组的筛选器是使用固有筛选器创建的。LdapRecipientFilter 属性是一个只读属性,用于显示在 Exchange 的早期版本中创建该组使用的 LDAP 筛选器。

自定义筛选器示例

本示例介绍如何使用自定义筛选器创建动态通讯组。本示例命令中的语法与用于新建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。

要为动态通讯组创建自定义筛选器,必须将 RecipientFilter 参数和 New-DynamicDistributionGroupSet-DynamicDistributionGroup cmdlet 一起使用。

例如,如果要创建其 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')) }

note注意:
OrganizationalUnit 参数指定新建动态通讯组的位置。

其他 OPath 语法信息

要创建自己的自定义筛选器,应注意以下内容:

  • 使用大括号 { } 将具有 FilterRecipientFilter 参数的整个 OPath 语法字符串括起来。

  • 所有的运算符之前都要包含连字符。

  • 最常用的运算符如下:

    • -and

    • -or

    • -not

    • -eq(等于)

    • -ne(不等于)

    • -lt(小于)

    • -gt(大于)

    • -like(字符串比较)

    • -notlike(字符串比较)

  • -RecipientFilter-Filter 参数的许多属性都接受通配符。如果使用通配符,请使用 -like 运算符,而不要使用 -eq 运算符。-like 运算符可用于查找多种类型(诸如字符串)的模式匹配项,而 -eq 运算符可用于查找完全匹配项。

  • 使用下列命令获得可用运算符的相关信息:

    • Help about_logical_operator

    • Help about_comparison_operator

  • 收件人类型的大多数属性可用于创建筛选器字符串。有关特定 cmdlet 可以使用的可筛选属性的信息,请参阅 Exchange 命令行管理程序(SP1 和 SP2)中该 cmdlet 的参考主题。

详细信息

有关 Exchange 命令行管理程序中管道输出的详细信息,请参阅管道传输