Bagaimana cara mendapatkan daftar email yang lebih tua dari 2 tahun di Exchange Database, disortir berdasarkan pengguna, menggunakan Powershell?

8

Kami sedang mencari pengarsipan email dan memperbaiki kebijakan penyimpanan kami. Pertanyaan besarnya adalah (untuk departemen hukum), seberapa jauh kita ingin menyelamatkan? Saat ini pengguna kami memiliki batas kotak surat yang besar, dan di masa lalu semuanya dapat mengarsipkan sesuai keinginan mereka. Jadi kami memiliki beberapa ratus GB data yang tidak ada di Exchange Database, tetapi mungkin kami akhirnya akan masuk ke dalam database Archive untuk ditemukan. Apa yang ingin saya lakukan adalah dapat mengukur untuk tim hukum berapa banyak jika kita kembali 1 tahun, 2 tahun, 3 tahun, dll.

Saya menemukan Powershell Script yang cukup mudah di TheDailyAdmin yang melakukan sebagian besar yang saya inginkan, tetapi itu menggumpal semuanya dalam satu tumpukan. Saya ingin dapat melihat hasilnya tetapi diurutkan berdasarkan pengguna untuk mengetahui bahwa Sally memiliki 47MB yang lebih tua dari 2 tahun, Charles memiliki 190MB lebih dari 2 tahun, dll.

Ini skrip yang saya jalankan:

get-mailboxdatabase | get-mailbox -resultsize unlimited | get-mailboxfolderstatistics -folderscope all -includeoldestandnewestitems | export-csv mailbox_stats.csv

Ini berfungsi dengan baik untuk menempatkan mereka semua di dalam file, tetapi saya tidak tahu siapa email milik siapa. Saya juga menjalankannya di kotak surat saya secara khusus tetapi saya lebih suka tidak menjalankannya secara manual pada setiap pengguna karena itu akan memakan waktu sebentar! Saya bukan guru Powershell tetapi berharap seseorang di luar sana memiliki pemahaman yang lebih kuat dan dapat membantu mengarahkan saya ke arah yang benar dari perintah untuk membantu memecahnya sedikit lebih banyak.

Terima kasih sebelumnya!

Mengenakan
sumber

Jawaban:

1

Cari Multi-Mailbox Search / Discovery Search untuk apa yang Anda butuhkan. Anda bisa mendapatkan statistik kotak surat per-kotak dengan mengedit skrip yang ada, tetapi untuk mendapatkan ukuran semua email yang diterima dalam rentang rentang tanggal, rujuk tautan di atas. Ini tidak akan menjadi pencarian cepat dengan cara apa pun ...

Agustus
sumber
1

Saya mencoba untuk memecahkan masalah yang sama ini dan muncul dengan yang berikut.

Anda akan ingin mendefinisikan $locationserta mengubah addyears(-1)tahun yang Anda inginkan. Dalam contoh ini -1 adalah 1 tahun yang lalu.

$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"
}
Nixphoe
sumber
0

Cmdlet Exchange PowerShell tidak menyediakan cara untuk mengumpulkan statistik yang Anda cari. Seperti yang Anda temukan, itu hanya dapat mengagregasi folder; itu tidak dapat memecah statistik dalam rentang tanggal.

leher panjang
sumber
Ya, rentang tanggal ok, saya baru saja menggunakan filter Excel untuk menyortir item untuk hanya menampilkan sesuatu yang lebih tua dari 2 tahun. Tampaknya berhasil, tapi yang tidak bisa saya katakan adalah folder mana milik orang itu. Itu pada dasarnya hanya menempatkan setiap folder dari setiap orang menjadi satu .csv tanpa nama jalur untuk menunjukkan siapa folder itu milik. Saya berharap ada satu parameter lagi di suatu tempat yang dapat mengatakan sesuatu seperti, "-displayUserPath" yang akan menjelaskannya untuk saya. Terima kasih atas tanggapannya!
Don