none
Enviar email con informe de usuarios de exchange RRS feed

  • Pregunta

  • Gente bueno dias, estoy con un inconveniente y no se como resolverlo. Tengo que generar un script en powershell que me envie por mail un informe sobre el estado de los buzones de los usuarios. yo hasta ahora logre que me envie el mail con el informe con los siguientes campos: Usuario, Tamaño del buzon en megas, en que base se encuentra y como esta el buzon con respecto al limite. Ahora me estan pidiendo que agregue un campo mas que sea la OU donde se encuentra el usuario (ejemplo: dominio.com\argentina\users) para que sea mas facil la ubicacion de usuario.

    Yo estoy usuando el comando get-mailboxstatics y para todo lo anterior me vino barbaro pero para el la parte de la ubucacion del usuario en el AD no me esta saliendo.

    Intente convinarlo con un get-mailbox pero hay algo que no me esta funcionando.

    Les dejo ambos script para que los vean y expliquen que estoy haciendo mal.

    Script de reporte que uso para los informes sin ou.

    ###Script de PowerSheell para reportes de buzones de Exchange
    
    ###Primero cambiar las variables de envio y recepcion de emails
    $FromAddress = "reportes-mail@xxxxxx.com"
    $ToAddress = "xxxxx@xxxxx.com"
    $MessageSubject = "Tamaño casillas"
    $SendingServer = "correo1.xxx.com"
    
    ###Cambiar la variable de -database por la base a utilizar
    
    $MessageBody = Get-MailboxStatistics -database "DBUSERS" | Sort-Object -Property TotalItemSize -Descending |select @{name="Usuario";expression={$_.DisplayName}},@{name="Tamaño del Buzón(MB)";expression={$_.TotalItemSize.Value.ToMB()}}, @{name="Base de Datos";expression={$_.databasename}},@{name="Estado del Buzón";expression={$_.StorageLimitStatus}} | ConvertTo-Html
    
    ###Crea el objeto mensaje
    $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress,
    $MessageSubject, $MessageBody
    $SMTPMessage.IsBodyHTML = $true
    
    ###Envia el Mensaje
    $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
    $SMTPClient.Send($SMTPMessage)
    

    Script de envio de email con OU que no me funciona

    ###Script de PowerSheell para reportes de buzones de Exchange
    
    ###Primero cambiar las variables de envio y recepcion de emails
    $FromAddress = "reportes-mail@xxxxxx.com"
    $ToAddress = "xxxxx@xxxxx.com"
    $MessageSubject = "Tamaño casillas"
    $SendingServer = "correo1.xxx.com"
    
    ###Cambiar la variable de -database por la base a utilizar
    
    $MessageBody = Get-MailboxServer | Get-Mailbox | ForEach-Object{$ou = $_.DistinguishedName; $_ | Get-MailboxStatistics -database "DBUSER" | Sort-Object -Property TotalItemSize -Descending |select @{name="Usuario";expression={$_.DisplayName}},@{name="Tamaño del Buzón(MB)";expression={$_.TotalItemSize.Value.ToMB()}}, @{name="Base de Datos";expression={$_.databasename}}, @{name="Estado del Buzón";expression={$_.StorageLimitStatus}}, @{Name="OU";expression={$OU}}} |ConvertTo-Html
    
    ###Crea el objeto mensaje
    $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress,
    $MessageSubject, $MessageBody
    $SMTPMessage.IsBodyHTML = $true
    
    ###Envia el Mensaje
    $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
    $SMTPClient.Send($SMTPMessage)
    

    Muchas gracias a todos y saludos

    Pablo

    martes, 12 de abril de 2011 14:21

Respuestas

  • Hola Pablo, 

    Me parece que el tema se encuentra en la concatenación de la primer consulta y la segunda.

    Lo que pasa es que cuando haces 

    Get-MailboxServer | Get-Mailbox | ForEach-Object{$ou=$_.DistinguishedName}

    Claro obtienes la información de la OU pero al concatener esta con el Get-mailboxstatistics es que se presenta la falla, debido a que ahora el select de la consulta se hará bajo el Get-mailboxStatistics no sobre la variable $OU

    En este caso deberías de generar una consulta por aparte y despues concatenerla en el reporte

    Revisa lo que realizaron en un threat Similar

    http://social.technet.microsoft.com/Forums/exchange/en-US/6102e8a9-dc9b-4f4e-97a4-d2a506227374/powershell-script-to-display-ou-display-name-mailbox-size-total-items-and-the-smtp-address?forum=exchange2010

    • Marcado como respuesta Uriel Almendra miércoles, 21 de mayo de 2014 18:13
    lunes, 19 de mayo de 2014 14:37