![Exchange 邮箱分析](https://linux22.com/image/562076/Exchange%20%E9%82%AE%E7%AE%B1%E5%88%86%E6%9E%90.png)
我有几个用户的邮箱增长速度似乎比其他用户快得多。例如,我们归档了不到一年前某个特定用户的大量邮件,以便将他的邮箱缩减到大约 4GB(是的 - 我知道这很荒谬,但我们正在运行一个项目来实现自动归档/配额等)。
无论如何,我想知道是否有可用的工具(最好是免费的)来分析邮箱的附件数量/大小。类似 TreeSize 的工具,但适用于 Outlook OST(或甚至适用于服务器的源)。
(我们正在运行 Exchange 2003 SP2、Outlook 2010 客户端)
答案1
至于自由的产品:有很多OutlookFreeware.com 上用于创建报告和收集统计数据的工具我是开发者之一。特别是,附件报告和最大的文件夹对你来说非常有用。
答案2
Exchange Server 2003 本身没有提供任何可以为您提供所需信息的功能,但整个行业都围绕 Exchange 管理和报告而建立。这只是可用的工具之一:
http://www.manageengine.com/products/exchange-reports/features.html
答案3
实际上,您可以通过 WMI 获取其中一些信息。
下面是我为了类似目的编写的 Perl 示例:
#! /usr/bin/env perl
use strict;
use warnings;
use Win32::OLE('in');
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
print "Mailbox,Size (KB),Total Items,Last Logon Time,Last User\n";
my @computers = qw ( mailserver1 mailserver2 etc); #array off all mail servers, separated by spaces
foreach my $computer (@computers) {
my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\MicrosoftExchangeV2") or die "WMI connection failed.\n";
my $colItems = $objWMIService->ExecQuery("SELECT * FROM Exchange_Mailbox", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colItems) {
my $mailboxDisplayName = $objItem->{MailboxDisplayName} || "NULL";
my $size = $objItem->{Size} || "NULL";
my $totalItems = $objItem->{TotalItems} || "NULL";
my $lastLogonTime = substr($objItem->{LastLogonTime},0,8) || "NULL";
my $lastUser = $objItem->{LastLoggedOnUserAccount} || "NULL";
#next unless $mailboxDisplayName;
print "$mailboxDisplayName,$size,$totalItems,$lastLogonTime,$lastUser\n";
}
}
您需要安装 perl 和 Win32::OLE 模块,但这非常简单。通过执行从命令行运行它perl scriptname.pl
,并通过运行捕获到 .csv 文件perl scriptname.pl > report.csv
这个 WMI 类无法为您提供附件信息,但它可以为您提供消息数量和邮箱大小。