我正在尝试从电子邮件地址列表中获取收到的电子邮件的月度报告。我想将结果导出到.csv,并在可能的情况下通过电子邮件自动将csv发送到另一个地址。
这是我在exchange-management-shell中的方法看起来像这样,但是没有在.csv中创建任何数据
$mail = @("[email protected]","[email protected]")
$(foreach ($name in $mail)
{
$startofmonth = Get-Date -format MM/dd/yyyy -day 1 -hour 0 -minute 0 -second 0
$endofmonth = ((Get-Date -day 1 -hour 0 -minute 0 -second 0).AddMonths(1).AddSeconds(-1))
$endofmonth = "{0:MM/dd/yy}" -f [datetime]$endofmonth
$results = (Get-MessageTrackingLog -ResultSize unlimited -recipients $name -Start $startofmonth -End $endofmonth -EventId RECEIVE).count
$results
}) | Export-CSV -path \\mymachine\c$\output.csv -NoTypeInformation
如何在.csv中获取所需的数据:
邮箱地址| 计数(已接收邮件)| 大体时间
您可以为每个结果创建一个自定义对象,并将其返回到数组$output
。然后将数组转换为CSV
格式并将其输出到文件。
$mail = @("[email protected]","[email protected]")
$startofmonth = Get-Date -format MM/dd/yyyy -day 1 -hour 0 -minute 0 -second 0
$endofmonth = ((Get-Date -day 1 -hour 0 -minute 0 -second 0).AddMonths(1).AddSeconds(-1))
$endofmonth = "{0:MM/dd/yy}" -f [datetime]$endofmonth
[Array]$output = foreach ($name in $mail) {
$results = (Get-MessageTrackingLog -ResultSize unlimited -recipients $name -Start $startofmonth -End $endofmonth -EventId RECEIVE).count
[pscustomobject]@{
Name=$name;
Received=$results;
StartTime=$startofmonth;
EndTime=$endofmonth;
}
}
$output | ConvertTo-Csv -NoTypeInformation | Out-File -FilePath \\mymachine\c$\output.csv -Append
这将返回一个如下所示的CSV
文件:
"Name","Received","StartTime","EndTime"
"[email protected]","222","10/01/2016","10/31/16"
"[email protected]","340","10/01/2016","10/31/16"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句