悦享人永久链接:http://yxzhao.com/2013/filters-in-recipient-shell-commands/
转载请注明出处:悦享人-《Exchange 收件人命令行中的 filters》
可以使用多个 Exchange 命令行管理程序命令筛选一组收件人。可以在 Exchange 命令中创建下列类型的筛选器:
- 固有筛选器
- 使用 RecipientFilter 参数的自定义筛选器
- 使用 Filter 参数的自定义筛选器
- 使用 ContentFilter 参数的自定义筛选器
一、固有筛选器
“固有筛选器”是一种常用的 Exchange 筛选器,可用于满足多种收件人筛选条件以创建动态通讯组、电子邮件地址策略、地址列表或 GAL。 使用固有筛选器时,可以使用 Exchange 命令行管理程序,也可以使用 Exchange 管理中心 (EMC)。 使用固有筛选器,可以执行下列操作:
- 确定收件人的范围。
- 根据属性(如公司、部门和国家/地区)添加有条件的筛选。
- 添加收件人的自定义属性。 有关详细信息,请参阅自定义属性。
-下列参数视为固有筛选器
IncludedRecipients
ConditionalCompany
ConditionalDepartment
ConditionalStateOrProvince
ConditionalCustomAttribute1–15.
-固有筛选器适用于下列 cmdlet
New-DynamicDistributionGroup
Set-DynamicDistributionGroup
New-EmailAddressPolicy
Set-EmailAddressPolicy
New-AddressList
Set-AddressList
New-GlobalAddressList
Set-GlobalAddressList
-示例
本示例介绍如何在命令行管理程序中使用固有筛选器创建动态通讯组。 本示例中的语法与用于创建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。创建固有筛选器时,应提出下列问题:
希望包含哪个组织单位 (OU) 中的收件人? (此问题对应于 RecipientContainer 参数。)
希望包含哪种类型的收件人? (此问题对应于 IncludedRecipients 参数。)
希望在筛选器中包含哪些其他条件? (此问题对应于 ConditionalCompany、ConditionalDepartment、ConditionalStateOrProvince 和 ConditionalCustomAttribute 参数。)
本示例为 OU Contoso.com/Users 中的用户邮箱创建动态通讯组 Contoso Finance,并指定条件以便仅包括 Department 属性定义为 Finance 且 Company 属性定义为 Contoso 的收件人。
1
|
New-DynamicDistributionGroup -Name "Contoso Finance" -OrganizationalUnit Contoso.com/Users -RecipientContainer Contoso.com/Users -IncludedRecipients MailboxUsers -ConditionalDepartment "Finance" -ConditionalCompany "Contoso" |
本示例显示此新动态通讯组的属性。
1
|
Get-DynamicDistributionGroup -Identity "Contoso Finance" | Format-List Recipient*,Included* |
二、使用 RecipientFilter 参数的自定义筛选器
如果固有筛选器不满足创建或修改动态通讯组、电子邮件地址策略和地址列表的要求,则可通过使用 RecipientFilter 参数创建自定义筛选器。
-收件人筛选器参数适用于下列 cmdlet
New-DynamicDistributionGroup
Set-DynamicDistributionGroup
New-EmailAddressPolicy
Set-EmailAddressPolicy
New-AddressList
Set-AddressList
New-GlobalAddressList
Set-GlobalAddressList
有关可以与 RecipientFilter 参数一起使用的可筛选属性的详细信息,请参阅-RecipientFilter 参数的可筛选属性。
-示例
以下示例使用 RecipientFilter 参数创建动态通讯组。 本示例中的语法与用于创建电子邮件地址策略、地址列表或 GAL 的语法相似,但不完全相同。
本示例使用自定义筛选器为 Company 属性定义为 Contoso 且 Office 属性定义为 North Building 的用户邮箱创建动态通讯组。
1
|
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。有关服务器端筛选和客户端筛选的详细信息,请参阅处理命令输出中的“如何筛选数据”。
若要为具有 Filter 参数的 cmdlet 查找可筛选属性,可以对对象运行 Get 命令并通过管道传递 Format-List 参数来设置输出格式。 大多数返回值将可以在 Filter 参数中使用。 以下示例返回邮箱 Ayla 的详细列表。
1
|
Get-Mailbox -Identity Ayla | Format-List |
-Filter 参数适用于下列 cmdlet
Get-ActiveSyncDevice
Get-ActiveSyncDeviceClass
Get-CASMailbox
Get-Contact
Get-DistributionGroup
Get-DynamicDistributionGroup
Get-Group
Get-Mailbox
Get-MailboxStatistics
Get-MailContact
Get-MailPublicFolder
Get-MailUser
Get-Message
Get-MobileDevice
Get-Queue
Get-QueueDigest
Get-Recipient
Get-RemoteMailbox
Get-RoleGroup
Get-SecurityPrincipal
Get-StoreUsageStatistics
Get-ThrottlingPolicyAssociation
Get-UMMailbox
Get-User
Get-UserPhoto
Remove-Message
Resume-Message
Resume-Queue
Retry-Queue
Suspend-Message
Suspend-Queue
-示例
本示例使用 Filter 参数返回有关 title 包含单词 “manager” 的用户的信息。
1
|
Get-User -Filter {Title -like 'Manager*' } |
四、使用 ContentFilter 参数的自定义筛选器
使用 New-MailboxExportRequest cmdlet 时,可以使用 ContentFilter 参数以选择特定邮件内容进行导出。 如果该命令找到包含与内容筛选器匹配的内容的邮件,会将该邮件导出为 .pst 文件。
-示例
本示例创建一个导出请求,该请求在 Ayla 的邮箱中搜索正文包含短语 “company prospectus” 的邮件。 如果找到此短语,则命令会将具有此短语的所有邮件导出为 .pst 文件。
1
|
New-MailboxExportRequest -Mailbox Ayla -ContentFilter {Body -like "company prospectus*" } |
五、其他 OPATH 语法信息
创建自己的自定义筛选器时,应注意以下内容:
- 使用大括号 { } 将具有 Filter 或 RecipientFilter 参数的整个 OPATH 语法字符串括起来。
- 所有的运算符之前都要包含连字符。 最常用的运算符包括:
-and
-or
-not
-eq(等于)
-ne(不等于)
-lt(小于)
-gt(大于)
-like(字符串比较)
-notlike(字符串比较) - RecipientFilter 和 Filter 参数的许多属性都接受通配符。 如果使用通配符,请使用 like 运算符,而不要使用 eq 运算符。 like 运算符可用于查找多种类型(诸如字符串)的模式匹配项,而 eq 运算符可用于查找完全匹配项。
- 运行下列命令获得可使用的运算符的相关信息:
12
Help about_logical_operator
Help about_comparison_operator
- 收件人类型的大多数属性可用于创建筛选器字符串。