Редко приходится восстанавливать удаленные почтовые ящики, поэтому всё время забываю, как их «проявить» в Exchange Server 2013.
Exchange чрезвычайно экономно работает с почтовыми базами и базой Active Directory. Причем настолько экономно, что порой «забывает» изменять второстепенные атрибуты: например, при удалении почтового ящика признак SoftDeleted можно ждать очень долго, а без него трудоёмко найти фактически уже удаленный почтовый ящик.
В Exchange 2010 «проявить» все удаленные почтовые ящики можно было командой:
Get-MailboxDatabase | Clean-mailboxdatabase
Более экономно для одной почтовой базы:
Get-MailboxDatabase "mbdatabase"| Clean-mailboxdatabase
В версии Exchange 2013 командлета Clean-mailboxdatabase нет!
Тем не менее «проявление» удаленных почтовых ящиков можно сделать так:
Get-MailboxDatabase | foreach{Get-MailboxStatistics -Database $_.identity} | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false }
(Также можно указать конкретную почтовую базу Get-MailboxDatabase «mbdatabase»| …)
Как видите, стремление к экономии породило новый командлет Update-StoreMailboxState, который в отличие от Clean-mailboxdatabase работает только для одного почтового ящика: поэтому приходится перетряхивать всё содержимое почтовой базы командлетом Get-MailboxStatistics.
Только после этого можно получить список удаленных (отсоединенных) почтовых ящиков:
Get-MailboxDatabase | Get-MailboxStatistics | Where {($_.DisconnectDate -ne $null)}
Полезные ссылки:
Filed under: Exchange, Windows | Tagged: Exchange, Exchange 2010, Exchange 2013, exchange server, Exchange Server 2010, Exchange Server 2013 | 2 комментария »