現在、メールのアーカイブと保持ポリシーの見直しを検討しています。大きな問題は(法務部門にとって)どれくらい前に節約したいかです。現在、私たちのユーザーはメールボックスの制限が非常に大きく、以前はすべて適切であると見なしてアーカイブすることができました。したがって、Exchangeデータベースにはない数百GBのデータがありますが、最終的には検出のためにアーカイブデータベースに吸い込まれることになります。私がやりたいのは、法務チームが1年、2年、3年など前に戻った場合にどれだけの量になるかを定量化できることです。
TheDailyAdminで、ほとんどの部分で私がやりたいことを実行するかなり単純なPowershellスクリプトを見つけましたが、それはすべてを1つの山にまとめています。結果を確認できるようにしたいのですが、ユーザー別に並べ替えると、Sallyには2年以上前の47MB、Charlesには2年以上前の190MBがあることがわかります。
これが私が実行したスクリプトです:
get-mailboxdatabase | get-mailbox -resultsize unlimited | get-mailboxfolderstatistics -folderscope all -includeoldestandnewestitems | export-csv mailbox_stats.csv
すべてをファイルに保存することはできますが、メールがだれのものかはわかりません。特にメールボックスでも実行しましたが、時間がかかるため、すべてのユーザーに対して手動で実行するのは避けたいです。私はPowershellの第一人者ではありませんが、誰かがしっかりと把握し、コマンドを正しい方向に向けて少し細かく分解できるようにしてくれることを願っていました。
前もって感謝します!
私はこれと同じ問題を解決しようとして、次のことを思いつきました。
_$location
_を定義するとともに、addyears(-1)
を必要な年数に変更する必要があります。この例では、-1は1年前です。
_$Mailbox = Get-MailboxDatabase | Get-Mailbox
Foreach ($MBX in $Mailbox) {
$usermailbx = Get-Mailbox -identity $MBX | Get-MailboxStatistics
$userarchmailbx = Get-Mailbox -identity $MBX | search-mailbox -SearchQuery "received<=$((get-date).addyears(-1).toString("yyyy-MM-ddTHH:mm:ssZ"))" -EstimateResultOnly
[pscustomobject]@{UserName=$usermailbx.displayname;TotalItemCount=$usermailbx.ItemCount;TotalItemSize=$usermailbx.totalitemsize.value;DeletedItemSize=$usermailbx.totaldeleteditemsize.value;ArchiveSize=$userarchmailbx.ResultItemsSize} | export-csv -append "$location\file.csv"
}
_
マルチメールボックス検索/ディスカバリー検索 で必要なものを調べます。既存のスクリプトを編集することにより、個々のフォルダーのメールボックスごとの統計情報を取得できますが、日付範囲内で受信されるすべてのメールのサイズを取得するには、上記のリンクを参照してください。それは決して簡単な検索にはなりません...
Exchange PowerShellコマンドレットは、探している統計を収集する方法を提供しません。あなたが発見したように、それはフォルダを集約することしかできません。統計を日付範囲に分割することはできません。