Làm cách nào để có được danh sách các email cũ hơn 2 năm trong Cơ sở dữ liệu Exchange, được sắp xếp theo người dùng, sử dụng Powershell?


8

Chúng tôi hiện đang xem xét việc lưu trữ email và sửa đổi chính sách lưu giữ của chúng tôi. Câu hỏi lớn là (đối với bộ phận pháp lý), chúng ta muốn tiết kiệm bao xa? Hiện tại người dùng của chúng tôi có giới hạn hộp thư rất lớn và trong quá khứ tất cả đều có thể lưu trữ khi họ thấy phù hợp. Vì vậy, chúng tôi có vài trăm GB dữ liệu không có trong Cơ sở dữ liệu trao đổi, nhưng có lẽ cuối cùng chúng tôi sẽ hút vào cơ sở dữ liệu Lưu trữ để khám phá. Những gì tôi muốn làm là có thể định lượng cho nhóm pháp lý số tiền đó sẽ là bao nhiêu nếu chúng tôi quay lại 1 năm, 2 năm, 3 năm, v.v.

Tôi đã tìm thấy một Tập lệnh Powershell khá đơn giản tại TheD DailyAdmin, phần này thực hiện những gì tôi muốn, nhưng nó lại gộp tất cả trong một đống. Tôi muốn có thể xem kết quả nhưng được người dùng sắp xếp để biết rằng Sally có 47 MB ​​cũ hơn 2 năm, Charles có 190 MB trên 2 tuổi, v.v.

Đây là kịch bản tôi đã chạy:

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

Nó hoạt động tốt khi đưa tất cả chúng vào hồ sơ, nhưng tôi không thể nói email của ai thuộc về ai. Tôi cũng đã chạy nó trên hộp thư của mình một cách cụ thể nhưng tôi không muốn chạy nó bằng tay trên mọi người dùng vì điều đó sẽ mất một lúc! Tôi không phải là một bậc thầy Powershell nhưng hy vọng ai đó ở ngoài đó nắm chắc hơn và có thể giúp tôi chỉ ra đúng hướng của các lệnh để giúp phá vỡ nó thêm một chút.

Cảm ơn trước!

Câu trả lời:


1

Nhìn vào Tìm kiếm / Khám phá nhiều hộp thư cho những gì bạn cần. Bạn có thể lấy số liệu thống kê trên mỗi hộp thư của các thư mục riêng lẻ bằng cách chỉnh sửa tập lệnh hiện có của mình, nhưng để có được kích thước của tất cả thư nhận được trong phạm vi ngày tham chiếu liên kết ở trên. Nó sẽ không phải là một tìm kiếm nhanh bằng mọi cách ...


1

Tôi đã cố gắng giải quyết vấn đề tương tự và đưa ra những điều sau đây.

Bạn sẽ muốn xác định $locationcũng như thay đổi addyears(-1)số năm bạn muốn. Trong ví dụ này -1 là 1 năm trước.

$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"
}

0

Các lệnh ghép ngắn Exchange PowerShell không cung cấp cách thu thập số liệu thống kê bạn đang tìm kiếm. Như bạn đã khám phá, nó chỉ có thể tổng hợp một thư mục; nó không thể phá vỡ các số liệu thống kê trong phạm vi ngày.


Chà, phạm vi ngày là ổn, tôi vừa sử dụng bộ lọc Excel để sắp xếp các mục để chỉ hiển thị mọi thứ cũ hơn 2 năm. Điều đó có vẻ hoạt động tốt, nhưng điều tôi không thể nói là thư mục nào thuộc về người nào. Về cơ bản, chỉ cần đặt mọi thư mục từ mỗi người vào một .csv không có tên đường dẫn để hiển thị thư mục đó thuộc về ai. Tôi đã hy vọng có thêm một tham số ở đâu đó có thể nói điều gì đó như "-displayUserPath" sẽ làm sáng tỏ nó cho tôi. Cảm ơn vì sự trả lời!
Don
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.