Como obter uma lista de emails com mais de 2 anos no Banco de Dados do Exchange, classificados por usuário, usando o Powershell?

7

No momento, estamos analisando o arquivamento de e-mails e reformulando nossa política de retenção. A grande questão é (para o departamento jurídico), até quando queremos economizar? Atualmente, nossos usuários têm um enorme limite de caixa de correio e, no passado, todos conseguiram arquivar como bem entendessem. Portanto, temos algumas centenas de GB de dados que não estão no banco de dados do Exchange, mas que provavelmente acabaríamos sugando para um banco de dados de arquivos para descoberta. O que eu gostaria de fazer é quantificar para a equipe jurídica o quanto isso seria se voltássemos 1 ano, 2 anos, 3 anos, etc.

Eu encontrei um script Powershell razoavelmente direto no TheDailyAdmin que faz o que eu quero na maioria das vezes, mas ele coloca tudo em uma pilha. Eu gostaria de poder ver os resultados, mas ordenados pelo usuário para saber que Sally tem 47MB com mais de 2 anos, Charles tem 190MB com mais de 2 anos, etc.

Aqui está o script que eu executei:

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

Funciona bem para colocar todos em arquivo, mas não sei dizer quem é o email que pertence a quem. Eu também corri na minha caixa de correio especificamente, mas eu prefiro não executá-lo manualmente em todos os usuários, pois isso levaria algum tempo! Eu não sou um guru Powershell, mas estava esperando que alguém lá fora tenha um aperto mais firme e possa ajudar a me apontar na direção certa dos comandos para ajudar a dividi-lo um pouco mais.

Obrigado antecipadamente!

    
por Don 08.03.2013 / 15:36

3 respostas

1

Procure em Pesquisa em várias caixas de correio / Pesquisa de descoberta para o que você precisa. Você pode obter estatísticas de pastas individuais de cada caixa de correio editando o script existente, mas para obter o tamanho de todas as mensagens recebidas em um intervalo de data, consulte o link acima. Não vai ser uma busca rápida por qualquer meio ...

    
por 28.03.2013 / 18:07
0

Os cmdlets do Exchange PowerShell não fornecem uma maneira de reunir as estatísticas que você está procurando. Como você descobriu, só pode agregar uma pasta; não pode dividir as estatísticas em intervalos de datas.

    
por 08.03.2013 / 16:36
0

Eu estava tentando resolver o mesmo problema e descobri o seguinte.

Você desejará definir $location e alterar o addyears(-1) para o número de anos desejado. Neste exemplo, -1 é há 1 ano.

$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"
}
    
por 06.06.2016 / 15:54