我们正在使用 Exchange 2010。我想检索 30 天内所有工作场所用户发送的电子邮件总数和接收的电子邮件总数的列表。该列表应包含所有用户的姓名,然后是发送和接收的电子邮件总数。
我尝试了下面的示例代码并试图改变它但无济于事。
Get-MessageTrackingLog -Recipients [email protected] -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "receive" | measure-object
Get-MessageTrackingLog -sender [email protected] -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "send" | measure-object
答案1
“默认情况下,任何邮件跟踪日志文件的最长期限为 30 天”- 除非您更改了消息跟踪日志的默认值,否则您不太可能从那里获取一年前的旧数据(除非您几乎没有任何消息,因此在过去 30 多天内没有达到每个日志文件 10 MB 的限制)。
如果您需要保留此类数据,请将日志的最大年龄/目录大小限制更改为在文档中描述。
另一点是,跟踪日志不包含用户信息 - 它仅包含发件人和收件人 - 这些信息可能会或可能不会映射到您基础设施的实际用户。
除此之外,您还可以直接将结果通过管道传输Get-MessageTrackingLog
到group-object
分组和计数。对于按发件人分组,这将相当简单:
Get-MessageTrackingLog -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” | group-object -Property Sender
按收件人分组比较棘手,因为返回的“收件人”字段Get-MessageTrackingLog
是多值的 - 即可能包含多个收件人。Select-Object -ExpandProperty
在此处添加前缀会有所帮助:
Get-MessageTrackingLog -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” | select-object -ExpandProperty Recipients | group-object
结果集看起来有点像这样:
Count Name Group
----- ---- -----
44 [email protected] {[email protected], [email protected], ...}
11 [email protected] {[email protected], [email protected], ...}
36 some.address@foreigndo... {[email protected], some.address@for...}
[...]
答案2
不确定您正在寻找什么(仍然),因为我不确定您的问题是什么以及到目前为止这些评论对您有多大帮助,但是,以下脚本一直帮助了我:
http://gallery.technet.microsoft.com/office/f2af711e-defd-476d-896e-8053aa964bc5