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

Применимо к: Exchange Server 2010

Последнее изменение раздела: 2009-10-14

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

Обзор многозначных свойств

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

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

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

Дополнительные сведения об объектах см. в разделе Структура данных.

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

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

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

Bb684908.note(ru-ru,EXCHG.140).gifПримечание.
Некоторые командлеты, такие как Set-TransportRule, не поддерживают изменение свойств объекта, описанное в этом разделе. Дополнительные сведения о добавлении и удалении значений многозначных свойств этих командлетов приведены в разделах, посвященных этим командлетам, например Set-TransportRule.

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

Добавление значения к многозначному свойству

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

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

$Example = Get-RecipientFilterConfig

При запуске команды $Example | Format-List BlockedRecipients возвращается следующее:

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

Далее необходимо добавить значение, которое нужно добавить к свойству BlockedRecipients, в объект, хранящийся в переменной $Example. Имейте в виду, что на этом этапе происходит только добавление значения в объект, хранящийся в переменной. Чтобы добавить значение chris@contoso.com в свойство BlockedRecipients объекта, хранящегося в переменной $Example, выполните следующую команду:

$Example.BlockedRecipients += "chris@contoso.com"

При повторном запуске команды $Example | Format-List BlockedRecipients возвращается следующее:

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

Как видно, адрес SMTP chris@contoso.com добавлен в список значений, хранящихся в свойстве BlockedRecipients.

Наконец, необходимо сохранить объект, хранящийся в переменной $Example, используя следующую команду:

Set-RecipientFilterConfig -BlockedRecipients $Example.BlockedRecipients

Теперь при запуске команды Get-RecipientFilterConfig | Format-List BlockedRecipients видно, что адрес SMTP chris@contoso.com добавлен к серверу.

Добавление нескольких значений в многозначное свойство

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

$Example.BlockedRecipients += "user1@contoso.com", "user2@contoso.com", "user3@contoso.com"

После выбора добавляемых значений используйте командлет Set-RecipientFilterConfig для сохранения объекта.

Bb684908.note(ru-ru,EXCHG.140).gifПримечание.
Некоторые командлеты не позволяют добавить одновременно несколько значений.

Удаление значения из многозначного свойства

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

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

$Example = Get-RecipientFilterConfig

Затем следует выполнить следующую команду, которая определяет удаляемое значение.

$Example.BlockedRecipients -= "david@contoso.com"

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

Set-RecipientFilterConfig -BlockedRecipients $Example.BlockedRecipients

Примеры добавления значений в многозначное свойство

Следующие процедуры командной консоли являются примерами добавления значений в некоторые многозначные свойства, доступные для различных объектов Microsoft Exchange Server 2010, с последующим отображением обновленных результатов.

В этом примере выполняется добавление адреса SMTP в почтовый ящик Kim Akers.

$Mailbox = Get-Mailbox "Kim Akers"
$Mailbox.EmailAddresses += "kim@contoso.com"
Set-Mailbox "Kim Akers" -EmailAddresses $Mailbox.EmailAddresses

В этом примере отображается имя и адреса электронной почты для обновленного почтового ящика Kim Akers.

Get-Mailbox "Kim Akers" | Format-List Name, EmailAddresses

В этом примере выполняется добавление дополнительных кодов уведомления о доставке (DSN) в свойство GenerateCopyOfDSNFor.

$DsnList = Get-TransportConfig
$DsnList.GenerateCopyOfDSNFor += "5.4.7", "5.7.1", "5.7.2"
Set-TransportConfig -GenerateCopyOfDSNFor $DsnList.GenerateCopyOfDSNFor

В этом примере отображаются все коды DSN, включая добавленные.

Get-TransportConfig | Format-List GenerateCopyOfDSNFor

Примеры удаления значений многозначного свойства

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

В этом примере выполняется удаление идентификатора устройства с поддержкой Microsoft Exchange ActiveSync из почтового ящика на сервере клиентского доступа.

$CasDevice = Get-CasMailbox "David Simpson"
$CasDevice.ActiveSyncAllowedDeviceIDs -= "4B9207650054767AD0AEE83A414BCD7F"
Set-CasMailbox "David Simpson" -ActiveSyncAllowedDeviceIDs $CasDevice.ActiveSyncAllowedDeviceIDs

В этом примере отображается обновленный список идентификаторов устройств.

Get-CasMailbox "David Simpson" | Format-List Name, ActiveSyncAllowedDeviceIDs

В этом примере выполняется удаление почтового ящика из списка почтовых ящиков, имеющих разрешение на выполнение отправки от имени группы рассылки Sales Group.

$DistributionGroup = Get-DistributionGroup "Sales Group"
$DistributionGroup.GrantSendOnBehalfTo -= (Get-Mailbox "Christine Koch").Identity
Set-DistributionGroup "Sales Group" -GrantSendOnBehalfTo $DistributionGroup.GrantSendOnBehalfTo

В этом примере отображается обновленный список почтовых ящиков, имеющих разрешение на выполнение отправки от имени группы рассылки Sales Group.

Get-DistributionGroup "Sales Group" | Format-List Name, GrantSendOnBehalfTo