Mat*_*att 4 powershell exchange-2010
我们正在使用 Exchange 2010。我想检索 30 天内来自工作场所所有用户的已发送电子邮件总数和已接收电子邮件的列表。该列表应包含所有用户的姓名,然后是发送和接收的电子邮件总数。
我已经尝试了下面的示例代码,并试图将其更改为无济于事。
Get-MessageTrackingLog -Recipients user01@yourdomain.com -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "receive" | measure-object
Get-MessageTrackingLog -sender user01@yourdomain.com -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "send" | measure-object
“默认情况下,任何消息跟踪日志文件的最长期限为 30 天” ——除非您更改了消息跟踪日志默认值,否则您不太可能从那里获得一年前的数据(除非您几乎没有消息,因此过去 30 天未达到每个日志文件 10 MB 的限制)。
如果您需要保留此类数据,请按照文档中的说明更改日志的最大年龄/目录大小限制。
另一点是跟踪日志不包含用户信息——它只包含发件人和收件人——这可能会也可能不会映射到您的基础设施的实际用户。
除此之外,您可以将Get-MessageTrackingLog
to的结果通过管道group-object
进行分组和计数。对于按发件人分组,这将是微不足道的:
Get-MessageTrackingLog -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” | group-object -Property Sender
Run Code Online (Sandbox Code Playgroud)
按收件人分组比较棘手,因为返回的“收件人”字段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
Run Code Online (Sandbox Code Playgroud)
结果集看起来有点像这样:
Count Name Group
----- ---- -----
44 mail@yourdomain.com {mail@yourdomain.com, mail@yourdomain.com, ...}
11 user1@yourdomain.com {user1@yourdomain.com, user1@yourdomain.com, ...}
36 some.address@foreigndo... {some.address@foreigndomain.com, some.address@for...}
[...]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42891 次 |
最近记录: |