locked
¿Se pueden combinar los cmdlets Get-mailbox & Get-mailboxstatistics de Exchange Sell 2010? RRS feed

  • Pregunta

  • Buenas tardes a todos

    Con un favor, necesito generar 2 reportes, que contenga los sig. atributos:

    PrimarySmtpAddress,DisplayName,ServerName,ProhibitSendReceiveQuota,RecipientLimits,MaxSendSize

    y otro que contenga:

    DisplayName,TotalItemSize,ItemCount,DatabaseName,ServerName

    Los 2 reportes son del mismo server por lo tanto estaría muy bien si solo se genera un solo reporte con toda esta información.  

    He estado utilizando los Cmdlets get-mailbox y get-mailboxstatistics, todo funciona a la perfección, "el único problema es que no coincide el número de resultados" :(. Alguien sabe como generar esto en 2 reportes o si se puede realizar en un solo reporte mucho mejor (ya que son los mismos buzones y el mismo server).

    Gracias de antemano.


    • Editado unorojo viernes, 21 de septiembre de 2012 20:43 pregunta mal planteada
    viernes, 21 de septiembre de 2012 20:01

Respuestas

  • Hola unorojo!

    Te paso una idea donde están todos los atributos que nombrás, combinandolos en un solo script:

    $MailboxData = @()
    $mailboxes = Get-Mailbox -server "NombreServidor" -ResultSize unlimited
    
    foreach ($mailbox in $mailboxes) {
    
    $DBObject = new-object PSObject
    
    $DBObject | add-member NoteProperty -Name PrimarySmtpAddress -Value $mailbox.PrimarySmtpAddress
    $DBObject | add-member NoteProperty -Name ProhibitSendReceiveQuota -Value $mailbox.ProhibitSendReceiveQuota
    $DBObject | add-member NoteProperty -Name RecipientLimits -Value $mailbox.RecipientLimits
    $DBObject | add-member NoteProperty -Name MaxSendSize -Value $mailbox.MaxSendSize
    $DBObject | add-member NoteProperty -Name DatabaseName -Value $mailbox.DatabaseName
    
    $DBObject | add-member NoteProperty -Name TotalItemSize -Value (Get-MailboxStatistics $mailbox.alias).totalitemsize
    $DBObject | add-member NoteProperty -Name ItemCount -Value (Get-MailboxStatistics $mailbox.alias).itemcount
    $DBObject | add-member NoteProperty -Name DisplayName -Value (Get-MailboxStatistics $mailbox.alias).displayname
    
    $MailboxData += $DBObject
    
    }
    
    $MailboxData | Export-Csv Report.csv -notype

    Guardalo en un archivo con extensión ps1. Para ejecutarlo, simplemente abrí el PowerShell y realizá el siguiente comando:

    set-executionpolicy unrestricted

    Y luego llamá al script ps1 de la siguiente forma, ubicandote en la misma carpeta desde donde lo vas a ejecutar:

    .\Reporte.ps1

    Dentro de esa misma carpeta te va a dejar un archivo llamado "Report.csv".

    Lo podés mejorar pero aquí tenés la base!

    Saludos!!


    Pablo Ariel Di Loreto
    IT Consultant

    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

    • Propuesto como respuesta Marc Salvador miércoles, 26 de septiembre de 2012 7:26
    • Marcado como respuesta unorojo jueves, 4 de octubre de 2012 20:19
    miércoles, 26 de septiembre de 2012 1:56

Todas las respuestas

  • Hola unorojo!

    Te paso una idea donde están todos los atributos que nombrás, combinandolos en un solo script:

    $MailboxData = @()
    $mailboxes = Get-Mailbox -server "NombreServidor" -ResultSize unlimited
    
    foreach ($mailbox in $mailboxes) {
    
    $DBObject = new-object PSObject
    
    $DBObject | add-member NoteProperty -Name PrimarySmtpAddress -Value $mailbox.PrimarySmtpAddress
    $DBObject | add-member NoteProperty -Name ProhibitSendReceiveQuota -Value $mailbox.ProhibitSendReceiveQuota
    $DBObject | add-member NoteProperty -Name RecipientLimits -Value $mailbox.RecipientLimits
    $DBObject | add-member NoteProperty -Name MaxSendSize -Value $mailbox.MaxSendSize
    $DBObject | add-member NoteProperty -Name DatabaseName -Value $mailbox.DatabaseName
    
    $DBObject | add-member NoteProperty -Name TotalItemSize -Value (Get-MailboxStatistics $mailbox.alias).totalitemsize
    $DBObject | add-member NoteProperty -Name ItemCount -Value (Get-MailboxStatistics $mailbox.alias).itemcount
    $DBObject | add-member NoteProperty -Name DisplayName -Value (Get-MailboxStatistics $mailbox.alias).displayname
    
    $MailboxData += $DBObject
    
    }
    
    $MailboxData | Export-Csv Report.csv -notype

    Guardalo en un archivo con extensión ps1. Para ejecutarlo, simplemente abrí el PowerShell y realizá el siguiente comando:

    set-executionpolicy unrestricted

    Y luego llamá al script ps1 de la siguiente forma, ubicandote en la misma carpeta desde donde lo vas a ejecutar:

    .\Reporte.ps1

    Dentro de esa misma carpeta te va a dejar un archivo llamado "Report.csv".

    Lo podés mejorar pero aquí tenés la base!

    Saludos!!


    Pablo Ariel Di Loreto
    IT Consultant

    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

    • Propuesto como respuesta Marc Salvador miércoles, 26 de septiembre de 2012 7:26
    • Marcado como respuesta unorojo jueves, 4 de octubre de 2012 20:19
    miércoles, 26 de septiembre de 2012 1:56
  • ¡Gracias Pablo, muy bueno!
    jueves, 4 de octubre de 2012 20:20