2013-04-01 87 views
2

我正在嘗試爲Exchange 2010運行PowerShell腳本以從特定日期/時間範圍提取信息。具有特定日期/時間範圍的PowerShell腳本

例如:告訴我收到的電子郵件的數量從週一至週五的時間範圍6 AM-11PM

get-messagetrackinglog -resultsize unlimited -Recipient [email protected] -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),但我無法弄清楚如何添加的。

任何幫助將不勝感激。

回答

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 [email protected] -Server EXCHANGE -Start $start -End $end | select messageid -unique | measure).count 
} 
0

get-messagetrackinglog cmdlet僅爲-start和-end使用單個參數,因此您無法在單個命令中指定該參數。

您可以在6 AM-11PM中運行5個不同日期的郵件跟蹤日誌查詢,每個查詢日不同日期並將這些結果聚合在一起,或者您可以對從上午6點到下午11點的所有日誌執行一個查詢然後過濾出在過渡期間在晚上11點至早上6點之間加時間戳的那些。

0

只是想回答有關過去的日期和時間的部分,假設你在晚上11點運行這一點,但想回到上午6時(17小時差異)... 可能使用類似:

$past=(Get-Date).adddays(-5).addhours(-17) 

然後嘗試

-start $past -end (get-date) 
+0

你可能是指它的其他方式「輪: ' - 開始$過去 - 結束(獲取日期)' –

相關問題