我正在尝试为Exchange 2010运行powershell脚本以从特定日期/时间范围提取信息。
示例:显示星期一至星期五上午6点至晚上11点之间收到的电子邮件数量
get-messagetrackinglog -resultsize unlimited -Recipient TEST@TEST.COM -Server EXCHANGE -Start "3/4/2013 6:00:00 AM" -End "3/6/2013 23:00:00 PM" | select messageid -unique | measure
但我想让日期范围不那么静止。所以,如果我每周星期五晚上11点运行脚本,我怎样才能让它在过去5天内完成此查询。
我正在尝试添加(get-date).adddays(-5)
,但我无法弄清楚如何添加它。
任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个
for($i=-4,$i -lt 0,$i++){
$start = (get-date -hour 6).adddays($i);
$end = (get-date -hour 23).adddays($i);
Write-host $start.DayoftheWeek (get-messagetrackinglog -resultsize unlimited -Recipient TEST@TEST.COM -Server EXCHANGE -Start $start -End $end | select messageid -unique | measure).count
}
答案 1 :(得分:0)
get-messagetrackinglog cmdlet仅为-start和-end采用单个参数,因此您无法在单个命令中指定该参数。
您可以在6 AM-11PM之间运行5个单独的消息跟踪日志查询,每个查询在不同的日期,并将这些结果汇总在一起,或者您可以在第一天的第一天上午6点到最后一天的晚上11点对所有日志执行一次查询,然后过滤掉在中午11点到早上6点之间加时间戳的那些。
答案 2 :(得分:0)
只是试着回答关于过去日期和时间的部分,并假设你在晚上11点运行,但想要回到早上6点(17小时差异)...... 也许使用类似的东西:
$past=(Get-Date).adddays(-5).addhours(-17)
然后尝试
-start $past -end (get-date)