#powershell #directory #exchange-server
#powershell #каталог #exchange-сервер
Вопрос:
У нас есть сервер Exchange 2007 с большим количеством почтовых ящиков. Мы привыкли использовать много папок и удалять сообщения в этих подпапках. Мне нужен список с почтовыми ящиками и общим размером почтового ящика, количеством элементов и количеством папок, поэтому я написал следующий скрипт.
Get-MailboxStatistics | where {$_.ObjectClass –eq “Mailbox”} | Sort-Object TotalItemSize –Descending | Foreach-Object{
$mbx = $_
$count = 0
$mbx | Get-MailboxFolderStatistics | Foreach-Object{ $count }
$mbx | Select-Object @{label='DisplayName';expression={$mbx.DisplayName}}, @{label='Total Size (MB)';expression={$mbx.TotalItemSize.Value.ToMB()}},@{label='Items';expression={$mbx.ItemCount}}, @{label='Folders';expression={$count}}
} > c:mailboxes.txt
Это отлично работает, но мы хотим ограничить количество папок в exchange 10 вложенными папками (например). Интересно, есть ли решение для перемещения сообщений из всех папок в 1 подпапку и удаления пустых папок.
Есть ли у кого-нибудь из вас решение для powershell (также возможен c #)
Комментарии:
1. Итак, вопрос заключается в перемещении сообщений, а не в подсчете папок, не так ли?
2. Действительно, я изменил название вопроса
Ответ №1:
Я вижу пару возможностей.
-
Используйте export-почтовый ящик, чтобы экспортировать всю электронную почту из папок, которые вы хотите удалить, в ту, которую вы хотите сохранить.
-
Используйте веб-службы Exchange (через управляемый API EWS), чтобы переместить элементы из папок, которые вы хотите удалить, в ту, которую вы хотите сохранить.