Назад | Перейти на главную страницу

Как получить список писем старше 2 лет в базе данных Exchange, отсортированный по пользователям, с помощью Powershell?

В настоящее время мы занимаемся архивированием электронных писем и пересматриваем нашу политику хранения. Большой вопрос (для юридического отдела) в том, как далеко мы хотим сэкономить? В настоящее время у наших пользователей есть огромный лимит почтовых ящиков, и в прошлом все они могли архивировать по своему усмотрению. Итак, у нас есть пара сотен ГБ данных, которых нет в базе данных Exchange, но которые мы, вероятно, в конечном итоге втягиваем в базу данных архива для обнаружения. Что я хотел бы сделать, так это определить для команды юристов, сколько это будет, если мы вернемся на 1 год, 2 года, 3 года и т. Д.

Я нашел довольно простой скрипт Powershell в TheDailyAdmin, который по большей части делает то, что я хочу, но объединяет все в одну кучу. Я хотел бы видеть результаты, но отсортированные по пользователям, чтобы знать, что у Салли 47 МБ, старше 2 лет, у Чарльза 190 МБ старше 2 лет и т. Д.

Вот сценарий, который я запустил:

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 не позволяют собирать статистику, которую вы ищете. Как вы обнаружили, он может объединять только папку; он не может разбить статистику по диапазонам дат.