2014-10-09 69 views
0

首先,我只是發出一點警告,說我的PowerShell技能非常有限,所以我可能會重新發明輪子並做得不好。Exchange PowerShell Export-csv

無論如何,我試圖創建/運行一個腳本,以使用郵件跟蹤日誌將所有交付郵件記錄提交給所有帳戶。我遇到的問題是將我的結果導出到csv時,它看起來好像結果是加密的。以下是我已經成功地拼湊代碼:

$msg = Get-TransportServer server_to_query | Get-MessageTrackingLog -ResultSize Unlimited -Start "10/01/2014 10:00:00" -End "10/01/2014 11:00:00" -EventID deliver | select-object -ExpandProperty Recipients | Group-Object | sort count -desc | ft -auto 

現在我知道它給了我,當我做在它下面顯示的前10條記錄,以及有多少總我想要的信息。

$msg.count 
$msg | select -first 10 

但是,當我做下面它不導出它甚至看起來很接近任何東西。

$msg | Export-CSV export.csv 

它最有可能是真正基本什麼即時消失或不理解,但我覺得我現在循環週末。任何指向正確方向的指針都會很棒。

感謝 馬克

+0

「幾乎加密」是怎麼樣的? – vonPryz 2014-10-09 17:19:35

+0

如果您打算導出數據,請勿使用'ft -auto'。格式表將破壞對象。嘗試從你的'$ msg'作業中刪除它。有更多的事情要做,但這是開始 – Matt 2014-10-09 18:04:59

回答

2

你的主要問題是,你填充$msg與結果format-table。幾乎任何人都會說,它只適用於殼體輸出。如果你打算做任何事情與數據Format-Table是不是要走的路。首先,刪除ft -auto

$msg = Get-TransportServer server_to_query | Get-MessageTrackingLog -ResultSize Unlimited -Start "10/01/2014 10:00:00" -End "10/01/2014 11:00:00" -EventID deliver | select-object -ExpandProperty Recipients | Group-Object | sort count -desc 

之後,它會輸出更好,但你會看到這樣的事情在你的CSV:

"System.Collections.ArrayList","17","System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]" 

由於大部分這些數據只是一個電子郵件地址重複一遍又一遍我想知道你的出口應該是這樣的。

$msg | select name,count -first 10 | Export-Csv c:\temp\test.csv 

不知道,如果這是你要的輸出,但它看起來是。

+0

千次是的!如果你發現自己啓動了一個'$ variable ='命令並且用'Format-'命令結束了同一個管道,那麼你就會再次嘗試。格式化命令與他們所說的完全一樣,格式化輸出,而不是用於收集和存儲數據(例如在變量中)。 – TheMadTechnician 2014-10-09 18:36:45

+0

謝謝大家的寶貴意見,還有另一個教訓和學到的東西。馬特你的最後一點是100%的權利我確實需要添加管道選擇數據,以保持文件清理不需要的信息。 – 2014-10-09 19:29:38

相關問題