Назад | Перейти на главную страницу

Управление владельцем группы распространения Exchange PowerShell

Как в среде Exchange 2010 (версия 14.3, сборка 123.4) добавить нового пользователя к атрибуту ManagedBy и одновременно удалить другого с помощью PowerShell? (Я сделаю это для нескольких списков с помощью foreach)

В этом сообщении блога TechNet http://blogs.technet.com/b/dstrome/archive/2011/05/29/multivalued-properties-in-exchange-2010.aspx синтаксис массива (я пробовал Добавить перед удалением, те же результаты):

Set-DistributionGroup Sales -ManagedBy @{Remove="David"; Add="Gerald"}

приводит к сообщению:

All groups must have at least one owner who manages membership, message approval, and other settings for the group.

Как правильно добавлять и удалять менеджеров из групп рассылки Exchange 2010?

ManagedBy - это параметр MultiValuedProperty.

Чтобы добавить, используйте операцию «плюс» (+), см. Пример ниже. Чтобы вычесть, используйте операцию вычитания равно (- =), см. Второй пример ниже.

Пример добавления пользователя:

$mgr = get-user gerald

foreach ($thing in $things) {
    $group = Get-DistributionGroup $thing
    $managers = $group.ManagedBy
    $newmanagers = $managers+$mgr
    Set-DistributionGroup -BypassSecurityGroupManagerCheck -ManagedBy $newmanagers -Identity $thing
}

И, чтобы удалить пользователя (используя DistinguishedName):

$removethis = "CN=David,OU=Houston,DC=company,DC=com"

при итерации по списку менеджеров $ (см. выше):

foreach ($manager in $managers) {
    $dn = $manager.DistinguishedName
    if ($dn -eq $removethis) {
        $modifiedmanagers = ($managers -= $removethis)
    }
}

затем используйте это в командлете:

    Set-DistributionGroup -BypassSecurityGroupManagerCheck -ManagedBy $modifiedmanagers -Identity $thing

Если конечным результатом является замена «Дэвида» на «Джеральда» в качестве владельца, вообще избегайте синтаксиса добавления / замены:

Set-DistributionGroup Sales -ManagedBy "Gerald"

Если вы должны выполнить эти две операции атомарно (если у вас есть случаи, когда вы мощь не хотите заменять существующие значения), разделите его на две отдельные операции:

Set-DistributionGroup Sales -ManagedBy @{Add="Gerald"}
Set-DistributionGroup Sales -ManagedBy @{Remove="David"}