понедельник, 5 мая 2014 г.

How To Permanently Delete Disconnected Mailbox in Exchange 2013 Database with bypass Retention Policy

Поводом к поиску решения послужило обращение друга-коллеги. Вопрос был следующим:

"Есть ли возможность безвозвратного удаления не нужного почтового ящика из базы ручками? Я знаю,что оно после того как нажато в консольке\шеле - удалить, валится в первую корзину, где живет н-ное количество времени, потом оттуда во вторую, где живет стока же и потом ещё и в третью (если включена). Ситуация следующая. я создал две учетки с почтой, потом один юзер на работу не вышел, но я удалил не ту учетку. пришлось создать её заного (старый ящик в базе так и остался болтаться, как ты понимаешь, с тем же алиасом, но типа оно отключено и не юзается). по факту экчендж запутался, он часть писем (те, что идут рассылкой по группам)  валит куда надо. а те, что отправляются из адресной книги валятся в никуда (вернее на тот, отключенный ящик, который сообщает - адрес не найден)"

А решение подсказано технетом тут http://technet.microsoft.com/en-us/library/jj863440(v=exchg.150).aspx

Допустим, что у Нас есть Default MRM Policy по умолчанию для баз почтовых ящиков.

Get-MailboxDatabase | fl name, *retention*



И допустим, что у нас есть два пользователя user1 и user2. Удостоверимся с помощью вывода Get-Mailbox






В оснастке ECP (Exchange Control Panel) удаляем ящик пользователя User1 несколько раз, дабы собрать набор отключенных ящиков в почтовой базе за некоторое время.





Ищем в базе удаленные ящики со статусом DisconnectReason -eq "Disabled". 




Точнее нам нужно вынуть GUID отключенных или удаленных ящиков пользователя User1 в базе. Делаем это так:

Get-MailboxDatabase | Get-MailboxStatistics | where {$_.disconnectreason -ne $null} | fl displayname, mailboxguid, database, disconnectreason



Затем по нужному GUID удаляем ящик командой Remove-StoreMailbox

Remove-StoreMailbox -Database "Mailbox Database 0373441201" -Identity "a4832eb0-d1e5-4f34-ae86-8e397f61a421" -MailboxState disabled



На этом выбранные ящики вычищены из базы. 
Проверка:

Get-MailboxDatabase | Get-MailboxStatistics | where {$_.disconnectreason -ne $null} | fl displa
yname, mailboxguid, database, disconnectreason

Вывод останется пустым, так как наша тестовая база, не содержит более отключенных ящиков.



Вот так обходится политика Default MRM Policy :)

Комментариев нет:

Отправить комментарий