Секретарь на работе ошибся с адресом получателя письма и разослал всем сотрудникам, письмо, содержащую информацию не для всех. Обратились ко мне, с просьбой срочно почистить почтовые ящики.
Можно было пойти двумя путями:
1) Назначить на каждый ящик себе полные права, зайти в каждый ящик и удалить письмо.
2) Написать скрипт, который сам пройдется по всем ящикам и удалит письмо.
Первый путь неправильный и долгий, поэтому я выбрал второй. Я написал скрипт, который в каждом почтовом ящике удаляет нужное письмо.
$mailbox = get-mailbox -resultsize unlimited
Foreach ($user in $mailbox)
{
Search-mailbox -Identity $user.SamAccountName -SearchQuery subject:»Тестовое письмо» -DeleteContent -Force:$True
}
Данный скрипт заносит в переменную mailbox все почтовые ящики, а потом в цикле, с помощью командлета Search-mailbox ищет письмо с темой «Тестовое письмо», удаляет его (аргумент -DeleteContent ), при этом автоматически происходит соглашение, что письмо надо удалить (аргумент -Force:$True)
Скорость выполнения зависит от производительности сервера.