问题描述
||
我们有一台Exchange 2007服务器,其中有很多邮箱。我们习惯于使用很多文件夹,并将消息放在此子文件夹中。我想要一个包含邮箱的列表以及邮箱的总大小,itemcount和文件夹的数量,因此我编写了以下脚本。
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
这很好用,但是我们希望将交换文件夹的数量限制为10个子文件夹(例如)。我想知道是否有解决方案将邮件从所有文件夹移动到1个子文件夹并删除空文件夹。
你们有没有针对Powershell的解决方案(也可以使用C#)
解决方法
我看到了几种可能性。
使用导出邮箱将所有电子邮件从要删除的文件夹导出到要保留的电子邮件。
使用Exchange Web服务(通过EWS托管API)将项目从要删除的文件夹移动到要保留的文件夹。