Script Exchange para comprobar estado de las colas de mensajes

Os dejo un script en powershell para exchange 2010, que uso para ver que no hay ningún mensaje parado en las colas de envío.

Tuve que inventarlo y ponerlo en tareas programas, porque un usuario le da por mandar todos los finales de mes un boletín a 300 personas y el ironport lógicamente nos le deja enviarlo, lo rechaza y lo deja en la cola de exchange parado con errores, esto hace que se ralentice algo el exchange.

El script es este:

##=======================================================
## Titulo : Estado de colas
## Descripcion : valida el estado de la arquitectura de Exchange
## Autor : Daniel Fuentes
## Fecha : 01/08/2017
##=======================================================

$time = Get-Date | Out-String

if (Get-TransportServer | Get-Queue | Where-Object { $_.MessageCount -ne 0 })  # esto comprueba el estado de las colas y si es diferente a 0 envia un mail
{

if (test-path $file){
$smtp = “NUESTRO SMTP”

$to = “xxxxxx@xxxxx.xxx”
$from = “xxxxxx@xxxx.xx”
$subject = “Aviso: estado de las colas de Exchange”
$body = $time
$body += “Todas las colas tienen que estar en 0`n”
$body += Get-TransportServer | Get-Queue | Format-Table -AutoSize -Property Identity,Status,MessageCount,NextHopDomain | Out-String -Width 500
$body += “Estas son las colas con problemas:`n”
$body += Get-TransportServer | Get-Queue | Where-Object { $_.MessageCount -eq 0} | Format-Table -AutoSize -Property Identity | Out-String

 

foreach ($recipient in $to)    {                Send-MailMessage -smtpServer $smtp -from $from -to $recipient -subject $subject  -body $body   #esto envia un coreeo a cara cuenta que pongamso en $to

}

}

else

{
write-output “Fichero no encontrado” | Out-File D:\script\estado_colas.txt -Append -width 300 # este genera un log por si algo ha fallado

}

}

##============================FIN========================

Espero que os sirva

Deja un comentario