Удаление SMTP-адресов в Exchange 2007 по маске

Итак, задачка: удалить некоторые из smtp-адресов пользователей, а конкретно те которые попадают под маску *@domain.ru

Для начала проделаем на одном пользователе:

$mb = Get-Mailbox gusev
$mb.EmailAddresses = $mb.EmailAddresses -notlike "*@domain.ru"
$mb | Set-Mailbox

Ну и тоже самое, но на всех:

Get-Mailbox | Foreach-Object {
$_.EmailAddresses = $_.EmailAddresses -notlike "*@domain.ru"
$_ | Set-Mailbox
}

Здесь мы просто перенаправили вывод командлета Get-Mailbox (который без параметров просто вернёт все почтовые ящики) в командлет Foreach-Object. Foreach-Object позволяет выполнить код (внутри фигурных скобок) на всех переданных ему объектах. При этом каждый обрабатываемый объект будет представлен в виде специальной переменной $_.

Вот собственно и всё :) Но по возможности, лучше конечно решать такие задачи политиками адресов.