Скрипт для перемещения почты из x папок в 1 папку в почтовом ящике exchange

#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:

Я вижу пару возможностей.

  1. Используйте export-почтовый ящик, чтобы экспортировать всю электронную почту из папок, которые вы хотите удалить, в ту, которую вы хотите сохранить.

  2. Используйте веб-службы Exchange (через управляемый API EWS), чтобы переместить элементы из папок, которые вы хотите удалить, в ту, которую вы хотите сохранить.