2017-03-16 95 views
0

我想寫的Exchange PowerShell腳本,將找到的郵件特定郵箱已經1個月的時限內收到的數量和電子郵件的對象總計特定個人。到目前爲止,我已經得到了:交易所自動化腳本

$date = Get-Date -Format MM/dd/yyyy 
$time = Get-Date -Format HH:mm:ss 
$previousMonth = 

PS C:\> Get-MessageTrackingLog -Recipients:mailbox1.org -start "02/01/2017 00:00:00" -end "$date $time" -EventId "Receive" -ResultSize unlimited | Measure-Object 
PS C:\> Get-MessageTrackingLog -Recipients:mailbox2.org -start "02/01/2017 00:00:00" -end "$date $time" -EventId "Receive" -ResultSize unlimited | Measure-Object 
PS C:\> Get-MessageTrackingLog -Recipients:mailbox3.org -start "02/01/2017 00:00:00" -end "$date $time" -EventId "Receive" -ResultSize unlimited | Measure-Object 
PS C:\> Get-MessageTrackingLog -Recipients:mailbox4.org -start "02/01/2017 00:00:00" -end "$date $time" -EventId "Receive" -ResultSize unlimited | Measure-Object 
ps c:\> Send-MailMessage -SmtpServer "server" -To "recipient email<recipient email>" -From "Monthly Mailbox Totals <email address>" -Subject "Monthly Mailbox Item Count" -Body "" 

什麼我遇到的麻煩是這樣的:我不能完全弄清楚如何計算日期範圍-start投入,得到前一個月的1號從目前的日期和時間,其次,我堅持如何從格式化到發送的電子郵件的正文總和。如果有幫助,我希望每個月的第一個腳本都能運行。

將不勝感激任何提示預先感謝您。

+0

我在這裏看到2-3獨立的問題。你應該儘量限制自己只有一個。您可以使用日期方法來獲取過去的日期,並保留當前的格式邏輯。您甚至沒有保存跟蹤日誌請求的結果。你還問如何自動化這個? – Matt

回答

0
System.DateTime

具有如下功能ADDX(天數,小時,分鐘等)。有了這些,你可以指定一個確切的時間表。然後,你剛剛從Get-MessageTrackingLog加起來返回值,並把你的變量的內容了。

$StartDate = (Get-Date).AddDays(-14) #Get the last 2 Weeks 
$EndDate = Get-Date 
$i = 0 
$ += (Get-MessageTrackingLog -Recipients "RecipientA" -Start $StartDate -End $EndDate -EventId "Receive" -ResultSize unlimited | measure).Count 
$ += (Get-MessageTrackingLog -Recipients "RecipientB" -Start $StartDate -End $EndDate -EventId "Receive" -ResultSize unlimited | measure).Count 
Send-MailMessage -SmtpServer "server" -To "recipient" -From "sender" -Subject "Mailcount" -Body "Mail count for this month is $i" 

如果您需要靈活地自行設置時間表,你可以簡單地使用類型加速器您datestring轉化爲DateTime

$StartDate = [DateTime]"3.10.17" 
+0

太棒了非常感謝你!使用(Get-Date).AddDays(-14)是否可以格式化?我需要把它MM/DD/YYYY HH:MM:SS會是 (獲取最新).AddDays(-14)格式MM/DD/YYYY HH:MM:SS – xs0u1x

+0

你並不需要將其格式化爲在Get-MessageTrackingLog中使用它。它只是使用當前的日期和時間並減去14天。如果你想格式化輸出的目的,那麼你可以做這樣的:'(獲取最新).AddDays(-14)的ToString( 「MM/DD/YYYY HH:MM:SS」)' – Fairy