修改多值属性

适用于:Exchange Server 2013

多值属性是可以包含多个值的属性。 例如, RecipientFilterConfig 对象上的 BlockedRecipients 属性可以接受如下示例中所示的多个收件人地址:

  • john@contoso.com
  • kim@northwindtraders.com
  • david@adatum.com

由于 BlockedRecipients 属性可以接受多个值,因此被称为多值属性。 本主题说明如何使用 Exchange 命令行管理程序在对象上的多值属性中添加和删除值。

有关对象的详细信息,请参阅 结构化数据。 有关 Shell 的详细信息,请参阅 将 PowerShell 与 Exchange 2013 (Exchange Management Shell)

修改多值属性与修改仅接受一个值的属性

修改多值属性的方式与修改仅可以接受一个值的属性的方式稍有不同。 当修改仅接受一个值的属性时,可以为其直接分配一个值,如以下命令所示。

Set-TransportConfig -MaxSendSize 12MB

当使用该命令向 MaxSendSize 属性提供一个新值时,会覆盖存储的值。 对于仅接受一个值的属性,则没有这个问题。 但是,多值属性存在这个问题。 例如,假定 RecipientFilterConfig 对象上的 BlockedRecipients 属性配置为具有在上一部分中列出的三个值。 运行 命令 Get-RecipientFilterConfig | Format-List BlockedRecipients时,将显示以下内容。

BlockedRecipients : {david@adatum.com, kim@northwindtraders.com, john@contoso.com}

现在,假定您已经接收到一个向阻止的收件人列表中添加新的 SMTP 地址的请求。 运行以下命令即可添加新的 SMTP 地址。

Set-RecipientFilterConfig -BlockedRecipients chris@contoso.com

再次运行 Get-RecipientFilterConfig | Format-List BlockedRecipients 命令时,将看到以下内容。

BlockedRecipients : {chris@contoso.com}

这并不是您所期望的。 您希望向现有的阻止的收件人列表中添加新的 SMTP 地址,但新的 SMTP 地址覆盖了现有的阻止的收件人列表。 这种意外结果展示了修改多值属性与修改仅接受一个值的属性不同之处。 当修改多值属性时,必须确保附加或删除值,而不会覆盖整个值的列表。 以下部分介绍如何正确执行该操作。

如何修改多值属性

修改多值属性类似于修改单值属性。 只需要添加一些额外的语法告诉命令行管理程序需要添加或删除多值属性的值,而不必替换属性中存储的一切。 在运行 cmdlet 时,语法与要在属性中添加或删除的值一起作为参数值包含在内。 下表显示了在 cmdlet 上添加参数以修改多值属性时所需的语法。

多值属性语法

操作 语法
向多值属性添加一个或多个值 @{Add="<value1>", "<value2>", "<value3>"}
从多值属性中删除一个或多个值 @{Remove="<value1>", "<value2>", "<value3>"}

从多值属性语法表中选择的语法指定为 cmdlet 的参数值。 例如,以下命令可向一个多值属性添加多个值:

Set-ExampleCmdlet -Parameter @{Add="Red", "Blue", "Green"}

使用此语法时,会在属性上已有的值列表中添加或删除指定的值。 以本主题前面的 BlockedRecipients 示例为例,现在可以使用以下命令添加 chris@contoso.com 而不覆盖此属性上的其余值:

Set-RecipientFilterConfig -BlockedRecipients @{Add="chris@contoso.com"}

如果要从值列表中删除 david@adatum.com ,可以使用以下命令:

Set-RecipientFilterConfig -BlockedRecipients @{Remove="david@adatum.com"}

可以使用更复杂的组织,例如同时在属性中添加或删除多个值。 为此,请在 和 Remove 操作之间Add插入分号 (; ) 。 例如:

Set-RecipientFilterConfig -BlockedRecipients @{Add="carter@contoso.com", "sam@northwindtraders.com", "brian@adatum.com"; Remove="john@contoso.com"}

如果再次使用 Get-RecipientFilterConfig | Format-List BlockedRecipients 命令,可以看到,在删除 John 的地址时,已添加 Carter、Sam 和 Brian 的电子邮件地址。

BlockedRecipients : {brian@adatum.com, sam@northwindtraders.com, carter@contoso.com, chris@contoso.com, kim@northwindtraders.com}