martes, 7 de diciembre de 2010

Exchange 2010: informe de buzones grandes

Objetivo: enviar informe por email (por ej. una vez por semana) con los tamaños de los 10 buzones Exchange 2010 más grandes y sus respectivos usuarios.

Requisitos: en un servidor Exchange 2010 lanzar el script una vez por semana mediante una tarea programada.

Observaciones: indicar en el script los campos adecuados del email del remitente, del destino y el servidor smtp de destino correspondiente.

---- comienzo del script --------

# top 10 en tamaño de buzones de Exchange 2010 vía email
# datos envío email

$remitente = "remitente@dominio.com" # origen email
$destino = "destinatario@dominio.com" # más de uno separados por coma
$asunto = "TOP 10 buzones de usuario"
$servidor_smtp_destino = "smtp.dominio.com" # servidor smtp destino

# extracción ordenada de tamaños de buzones

$buzones = Get-Mailbox |
get-mailboxstatistics |
select-object DisplayName, TotalItemSize |
sort TotalItemSize -Descending

# selección de los 10 primeros

$top10buzones = 0..9 | % {$buzones[$_]}

# elaboración del informe

$informe = "`n" # primera línea en blanco del texto del informe

$informe = $informe + " Tamaño Usuario" + "`n"
$informe = $informe + "-------- : ----------------------" + "`n"

foreach ($buzon in $top10buzones) # procesa los 10 buzones
{
$informe = $informe + "{0,5:n0}" -f ($buzon.TotalItemSize.value.ToGB()) + " GB" + " : " + $buzon.DisplayName + "`n"
}

# envía email con informe

$smtp = new-object Net.Mail.SmtpClient($servidor_smtp_destino)
$smtp.Send($remitente, $destino, $asunto, $informe)

---- fin del script --------


No hay comentarios: