Como Gerar Relatório de Caixas com Mais de X GB no Exchange On-Premises com PowerShell

Fala pessoal, tudo bem com vocês?
Se você cuida de um ambiente Exchange On-Premises, provavelmente já precisou descobrir quais caixas estão ocupando mais espaço que deveriam. Seja pra planejamento de armazenamento, migração ou só pra evitar aquele susto quando o banco enche — esse script aqui vai te salvar.
O que esse script vai fazer e automatizar teu trabalho rsr
- Listar todas as caixas que passam de um determinado tamanho (em GB) – Você que vai definir isso
- Mostrar nome, tamanho, quantidade de itens, banco e último login
- Exportar tudo pra um
.csv
E o que você precisa pra rodar ele?
Você pode usar direto no Shell do Exchange ou importar o modulo do Exchange no seu PowerShell…
Eu prefiro rodar direto no Shell do Exchange, mas isso dai é com você
Bora lá pro código
param(
[int]$LimiteGB = 10
)
$limiteBytes = $LimiteGB * 1GB
$caminhoCSV = "C:\Temp\CaixasAcimaDe${LimiteGB}GB.csv"
$relatorio = Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$estatisticas = Get-MailboxStatistics $_.Identity
if ($estatisticas.TotalItemSize.Value.ToBytes() -gt $limiteBytes) {
[PSCustomObject]@{
Nome = $_.DisplayName
Tamanho = $estatisticas.TotalItemSize
Itens = $estatisticas.ItemCount
BancoDeDados = $estatisticas.Database
UltimoLogin = $estatisticas.LastLogonTime
}
}
}
$relatorio | Export-Csv -Path $caminhoCSV -NoTypeInformation -Encoding UTF8
Write-Host "Relatório gerado com sucesso: $caminhoCSV"
Qual a parte boa ai?
Você não precisa definir direto no script o tamanho da caixa.. Nesse script ai tem um parâmetro chamado LimiteGB, que é quando você for usar o script você pode definir o tamanho que você procura.
Outra observação, o CSV é gerado na pasta C:\Temp, você pode modificar o caminho na variável caminhoCSV
Um exemplo de como usar
Vamos supor que eu salvei o script com o nome Relatorio-CaixasGrandes.ps1
.\Relatorio-CaixasGrandes.ps1 -LimiteGB 5
Eu defini o parâmetro para 5GB, agora é só esperar a magica acontecer
Administrar Exchange sem automação é pedir pra sofrer haha. Esse tipo de script simples, mas direto, evita surpresas, economiza tempo e te dá dados reais pra tomar decisão.
Se curtiu, compartilha com seu time. E se quiser automatizar mais coisas no Exchange, fica de olho aqui no blog — tem muito mais vindo por aí.