none
POWERSHELL EXCHANGE 2010 (get-mailbox&get-MailboxStatistics ) RRS feed

  • Pregunta

  • Buenas, necesito conocer el tamaño de los buzones de mi organizacion y el alias o el samaccountname de estos. Pero no soy capaz de enlazar el Get-mailbox con get-MailboxStatistics . Me podeis dar alguna ayuda?

     

    gracias?


    visita mi blog: http://agarciaizquierdo.blogspot.com/
    martes, 5 de julio de 2011 10:32

Respuestas

  • No tengo un Exchange 2010 a mano. En Exchange 2007 es algo parecido a esto:

    ForEach($MailBox In (Get-Mailbox -ResultSize Unlimited))
    {
      Get-MailboxStatistics -Identity $MailBox | `
      Format-Table @{Label="sAMAccountName";Expression={$MailBox.sAMAccountName}}, `
               @{Label="Size";Expression={$_.TotalItemSize.Value.ToBytes()}}, `
               @{Label="DeletedSize";Expression={$_.TotalDeletedItemSize.Value.ToBytes()}}, `
               @{Label="TotalSize";Expression={$_.TotalItemSize.Value.ToBytes() + $_.TotalDeletedItemSize.Value.ToBytes()}} -AutoSize
    }
    




    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta Alvaro_G miércoles, 6 de julio de 2011 7:36
    martes, 5 de julio de 2011 12:01
    Moderador
  • Podría ser algo así:

    $Devolucion = @()
    ForEach($MailBox In (Get-Mailbox -ResultSize Unlimited))
    {
     $Estadisticas = $null
     $Buzon = New-Object PsCustomObject | Select-Object sAMAccountName, `
                  Size, `
                  DeletedSize, `
                  TotalSize
     $Estadisticas = Get-MailboxStatistics -Identity $MailBox -ErrorAction SilentlyContinue
     If($Estadisticas -ne $null)
     {
      $Buzon.sAMAccountName = $MailBox.sAMAccountName
      $Buzon.Size = $Estadisticas.TotalItemSize.Value.ToBytes()
      $Buzon.DeletedSize = $Estadisticas.TotalDeletedItemSize.Value.ToBytes()
      $Buzon.TotalSize = $Buzon.Size + $Buzon.DeletedSize
      $Devolucion += $Buzon
     }
    }
    $Devolucion | Export-Csv -Delimiter "," -Path c:\users\Mortadelo\Documents\Temp\listado.csv -NoTypeInformation
    $Devolucion = $null

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)

    miércoles, 6 de julio de 2011 15:29
    Moderador

Todas las respuestas

  • No tengo un Exchange 2010 a mano. En Exchange 2007 es algo parecido a esto:

    ForEach($MailBox In (Get-Mailbox -ResultSize Unlimited))
    {
      Get-MailboxStatistics -Identity $MailBox | `
      Format-Table @{Label="sAMAccountName";Expression={$MailBox.sAMAccountName}}, `
               @{Label="Size";Expression={$_.TotalItemSize.Value.ToBytes()}}, `
               @{Label="DeletedSize";Expression={$_.TotalDeletedItemSize.Value.ToBytes()}}, `
               @{Label="TotalSize";Expression={$_.TotalItemSize.Value.ToBytes() + $_.TotalDeletedItemSize.Value.ToBytes()}} -AutoSize
    }
    




    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta Alvaro_G miércoles, 6 de julio de 2011 7:36
    martes, 5 de julio de 2011 12:01
    Moderador
  • muchas gracias, funciona bien.

    Una pregunta ya de nota, si quisiera exporatlo a un csv, el codigo seria:

    export-csv -delimiter "," ruta

    no?

    donde tendria que ponerlo? he hecho varias pruebas y no doy con ello

     

    muchas gracias, un saludo


    visita mi blog: http://agarciaizquierdo.blogspot.com/
    miércoles, 6 de julio de 2011 7:38
  • Podría ser algo así:

    $Devolucion = @()
    ForEach($MailBox In (Get-Mailbox -ResultSize Unlimited))
    {
     $Estadisticas = $null
     $Buzon = New-Object PsCustomObject | Select-Object sAMAccountName, `
                  Size, `
                  DeletedSize, `
                  TotalSize
     $Estadisticas = Get-MailboxStatistics -Identity $MailBox -ErrorAction SilentlyContinue
     If($Estadisticas -ne $null)
     {
      $Buzon.sAMAccountName = $MailBox.sAMAccountName
      $Buzon.Size = $Estadisticas.TotalItemSize.Value.ToBytes()
      $Buzon.DeletedSize = $Estadisticas.TotalDeletedItemSize.Value.ToBytes()
      $Buzon.TotalSize = $Buzon.Size + $Buzon.DeletedSize
      $Devolucion += $Buzon
     }
    }
    $Devolucion | Export-Csv -Delimiter "," -Path c:\users\Mortadelo\Documents\Temp\listado.csv -NoTypeInformation
    $Devolucion = $null

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)

    miércoles, 6 de julio de 2011 15:29
    Moderador
  • muchas gracias maquina! me va de lujo
    visita mi blog: http://agarciaizquierdo.blogspot.com/
    miércoles, 6 de julio de 2011 17:40
  • muchas gracias maquina! me va de lujo
    visita mi blog: http://agarciaizquierdo.blogspot.com/

    Hola y como hago para ejecutar estos comandos en mi servidor??

     

    gracias,

    jueves, 1 de septiembre de 2011 21:56
  • Desde una consola de Powershell de Exchange. Si quieres que sea desde una consola de PowerShell normal, debes agregar una línea que cargue el PsSnapin de Exchange:

     

    Add-PsSnapin Microsoft.Exchange.Management.PowerShell.Admin
    $Devolucion
    = @() ForEach($MailBox In (Get-Mailbox -ResultSize Unlimited)) { $Estadisticas = $null $Buzon = New-Object PsCustomObject | Select-Object sAMAccountName, ` Size, ` DeletedSize, ` TotalSize $Estadisticas = Get-MailboxStatistics -Identity $MailBox -ErrorAction SilentlyContinue If($Estadisticas -ne $null) { $Buzon.sAMAccountName = $MailBox.sAMAccountName $Buzon.Size = $Estadisticas.TotalItemSize.Value.ToBytes() $Buzon.DeletedSize = $Estadisticas.TotalDeletedItemSize.Value.ToBytes() $Buzon.TotalSize = $Buzon.Size + $Buzon.DeletedSize $Devolucion += $Buzon } } $Devolucion | Export-Csv -Delimiter "," -Path c:\users\Mortadelo\Documents\Temp\listado.csv -NoTypeInformation $Devolucion = $null

    Si además quieres que se ejecute como tarea programada, puedes guardarlo en un fichero de texto de extensión ps1 e invocarlo desde un BAT así (supongamos que el script es c:\scriptsPS\listar-buzones.ps1):

    powershell c:\scriptsPS\listar-buzones.ps1



    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Propuesto como respuesta Fabiuss martes, 20 de septiembre de 2011 15:57
    viernes, 2 de septiembre de 2011 11:48
    Moderador