У меня есть сервер 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
Когда тип написан прописными буквами, адрес считается основным адресом этого типа и используется как ответный адрес по умолчанию для этого получателя. Когда тип написан строчными буквами, адрес считается вторичным адресом и используется для разрешения адресов во время доставки электронной почты, позволяя одному и тому же получателю получать электронные письма, направленные на разные адреса электронной почты.