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

Они получают одно или несколько netblock выделений от своего RIR. Они находятся в бизнесе обеспечения интернет-сервисов, таким образом, у них есть экономическая модель (и поэтому нуждаются) получить большой блок (или блоки) адресов.

До предоставления корневого доступа идет, они настроят виртуальные серверы Linux (Xen, KVM, OpenVZ, и т.д.), которые позволяют им предоставлять свой клиентский полный доступ к их собственному серверу (серверам), не имея необходимость волновать по поводу них негативно влияние на других клиентов.

4
задан 9 December 2013 в 19:38
2 ответа

Here is a better version than my original answer (it handles multiple addresses to remove for each mailbox and also gives more output):

$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'
    }
}
3
ответ дан 3 December 2019 в 03:07

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

$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

Если тип написан заглавными буквами, адрес считается основной адрес этого типа, и он используется как ответ по умолчанию адрес получателя. Если шрифт набран строчными буквами, адрес считается вторичным адресом и используется для разрешения адресов во время доставки электронной почты, что позволяет одному и тому же получателю receive e-mails directed to different e-mail addresses.

3
ответ дан 3 December 2019 в 03:07

Теги

Похожие вопросы