Datetime 具有特定日期/时间范围的PowerShell脚本

Datetime 具有特定日期/时间范围的PowerShell脚本,datetime,powershell,exchange-server,Datetime,Powershell,Exchange Server,我正在尝试为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 -uniqu

我正在尝试为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)
,但我不知道如何添加它


任何帮助都将不胜感激。

get-messagetrackinglog cmdlet只接受-start和-end的单个参数,因此您不能在单个命令中指定该参数


您可以在不同的日期从早上6点到晚上11点对messagetracking日志运行5次单独的查询,并将这些结果汇总在一起,或者您可以从第一天早上6点到最后一天晚上11点对所有日志执行一次查询,然后过滤掉中间几天时间戳在晚上11点到早上6点之间的部分。

只是尝试回答关于过去日期和小时的部分,并假设您在晚上11点运行此功能,但希望返回到早上6点(17小时差异)。。。 也许可以使用类似于:

$past=(Get-Date).adddays(-5).addhours(-17)
然后试试看

-start $past -end (get-date) 
试试这个

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 
}

您的意思可能正好相反:
-Start$pass-End(Get Date)