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

Как удалить SMTP-адрес вторичного домена из всех почтовых ящиков Exchange?

У меня есть сервер Exchange, который используется для управления несколькими доменами SMTP; теперь ему нужно управлять только одним.

Я уже удалил дополнительный домен из всех политик адресов; Мне нужно удалить все SMTP-адреса, ссылающиеся на него.

У всех пользователей есть основной адрес SMTP, установленный для использования основного домена; но почти все они имеют другой адрес, использующий вторичный домен. У них также есть много других дополнений: SIP, используемый для lync, и один или несколько X500, полученных из предыдущих миграций. Их вообще нельзя трогать.

Как я могу удалить все эти вторичные SMTP-адреса, не влияя ни на что другое?

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

$domain = 'somedomain.com'

$mbxs = Get-Mailbox -ResultSize Unlimited

foreach($m in $mbxs)
{
    Write-Host 'Mailbox:' $m.SAMAccountName
    $addrs = $m.EmailAddresses
    for($i = 0;$i -lt $addrs.Count;$i++)
    {
        $addr = $addrs[$i]
        if($addr.PrefixString -eq 'smtp'-and $addr.SmtpAddress -like '*@' + $domain)
        {
            Write-Host 'Removing address:' $addr.SmtpAddress
            $m.EmailAddresses.RemoveAt($i)
            $i--
        }
    }
    if($addrs.Changed)
    {
        Write-Host 'Saving mailbox:' $m.SAMAccountName
        Set-Mailbox $m -EmailAddresses $addrs
    }
    else
    {
        Write-Host 'No address to remove'
    }
}

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

$SMTPDomainToRemove = "@OldDomain.com"
$AllUsers = Get-ADUser -Filter * -Properties proxyAddresses
Foreach($usr In $AllUsers)
{
    $NewAddressList = @()
    $OldAddressList = $usr.proxyAddresses
    Foreach($addr In $OldAddressList)
    {
        If(!($addr -Match $SMTPDomainToRemove))
        {
            $NewAddressList += $addr
        }
    }
    If($NewAddressList.Count -GT 0)
    {
        Set-ADUser $usr -Replace @{ 'proxyAddresses' = $NewAddressList}
    }
}

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

http://blogs.technet.com/b/exchange/archive/2005/01/10/350132.aspx

Атрибуты адреса электронной почты

Exchange хранит и использует информацию об адресах электронной почты получателя в следующих атрибутах: proxyAddresses

Это основной атрибут, в котором хранится информация об адресе электронной почты. Когда вы открываете свойства получателя в Outlook и просматриваете вкладку «Адреса электронной почты», вы смотрите на этот атрибут. Это многозначная строка, содержащая все адреса, представляющие получателя. Каждое значение должно иметь следующий формат: тип: адрес

Например: SMTP: nospam@online.microsoft.com

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