Изменение многозначных свойств

Область применения: Exchange Server 2013 г.

Многозначное свойство — свойство, которое может содержать более одного значения. Например, свойство BlockedRecipients объекта RecipientFilterConfig может принимать несколько адресов получателей, как в следующих примерах:

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

Поскольку свойство BlockedRecipients может принимать более одного значения, оно называется многозначным. В данном разделе объясняется, как использовать командную консоль Exchange для добавления и удаления значения для многозначных свойств объекта.

Дополнительные сведения об объектах см. в разделе Структурированные данные. Дополнительные сведения о оболочке см. в статье Использование PowerShell с Exchange 2013 (командная консоль Exchange).

Сравнение изменения многозначного свойства и изменения свойства, принимающего только одно значение

Изменение многозначных свойств несколько отличается от изменения свойств, принимающих только одно значение. Чтобы изменить свойство, принимающее только одно значение, можно присвоить значение непосредственно ему, как в следующей команде.

Set-TransportConfig -MaxSendSize 12MB

При использовании этой команды сохраненное значение переписывается, чтобы придать новое значение свойству MaxSendSize. Это несложно для свойств, принимающих только одно значение. Однако при работе с многозначными свойствами возникают трудности. Предположим, что свойство BlockedRecipients объекта RecipientFilterConfig настроено так, чтобы принимать три значения, перечисленные в предыдущем разделе. При выполнении команды 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. Этот непредусмотренный результат показывает, что изменение многозначного свойства отличается от изменения свойства, принимающего только одно значение. При изменении многозначного свойства необходимо убедиться в том, что значение добавляется или удаляется, не перезаписывая весь список значений. В следующем разделе показано, как именно это сделать.

Изменение многозначных свойств

Изменение многозначных свойств похоже на изменение свойств с одним значением. Вам просто нужно добавить определенный дополнительный синтаксис, чтобы сообщить командной консоли, что вы хотите добавить или удалить значения для многозначного свойства вместо замены всех хранящихся в нем данных. Этот синтаксис вместе с добавляемыми или удаляемыми для свойства значениями включается в виде значения параметра при запуске командлета. В следующей таблице приведен синтаксис, который требуется добавить в параметр командлета для изменения многозначных свойств.

Синтаксис многозначных свойств

Действие Синтаксис
Добавление одного или нескольких значений ко многозначному свойству @{Add="<value1>", "<value2>", "<value3>"}
Удаление одного или нескольких значений из многозначного свойства @{Remove="<value1>", "<value2>", "<value3>"}

Синтаксис, выбранный в таблице синтаксиса многозначных свойств, указывается в качестве значения параметра в командлете. Например, следующая команда добавляет несколько значений в многозначное свойство:

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"}

Можно использовать и более сложные комбинации, такие как одновременное добавление и удаление значений для свойства. Для этого вставьте точку с запятой (; ) между Add действиями и Remove . Например:

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

Если мы снова используем Get-RecipientFilterConfig | Format-List BlockedRecipients команду, мы увидим, что адреса электронной почты Для Картера, Сэма и Брайана были добавлены, а адрес Для Джона был удален.

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