【发布时间】:2011-01-13 15:16:14
【问题描述】:
我想知道你是否可以帮助我。我正在尝试使用 Exchange 中的 get-messagetrackinglog 工具提取已向自己发送电子邮件(从域 1 到域 2)的收件人列表。我的小脚本似乎适用于发件人的部分,但是经过几天的思考,我无法使其适用于收件人。我怀疑这是因为每封电子邮件可以有许多收件人(而不是只有一个发件人),这需要将一个数组分配给收件人变量但是对于 powershell 我不完全确定如何去做以及如何管它通过。逻辑如下:
a) 我想使用 split 命令来隔离所有发件人(使用空格分隔符)并将它们提取到一个数组中, b)然后使用@分隔符将发件人和收件人的地址的第一部分从域中分离出来 c) 比较我获得的电子邮件地址的第一部分(从 adam@domain1 和 adam@domain2 返回的值)。 d) 如果它们匹配 - 我需要将电子邮件结果导出到 .csv。
我已经走到这一步了:
Get-MessageTrackingLog -server "pdnaex1" -EventID "SEND" -start "01/10/2010 00:00:00" -end "31/10/2010 23:59:59" -resultsize 无限 |其中 {[string]$.sender.split("@")[0] -like [string]$.recipients.split("@")[0]} |选择时间戳,@{Name="Sender";Expression={$.sender}},@{Name="Recipients";Expression={$.recipients}},messagesubject |导出-csv X:\XXX.csv
我知道上面是不正确的,但希望我能把我的问题说清楚。
非常感谢任何帮助。我怀疑我的脚本失败了,因为我无法填充收件人数组并将发件人的值与该数组中的每个条目进行比较,但我不知道该怎么做。
【问题讨论】:
标签: powershell foreach exchange-server-2007