none
Enviar Estadisticas Mailbox por correo RRS feed

  • Pregunta

  • Hola,

    quiero consultar cada día vía email el espacio que están ocupando los correos de cada usuario. Para ello veo que desde el comando: 

    Get-MailboxDatabase "Mailbox Usuarios" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount

    Se puede realizar en la Shell de Exchange. Lo que quiero hacer es un script en powershell para que haga esta tarea y cree un log en un fichero y así luego yo genere otro script para enviarlo por correo (el script en powershell para enviarlo por correo lo tengo aquí):

    $file = "C:\log.txt"
    
    if (test-path $file)
    {
    
        $from = "XXXX@XXXXXX.com"
        $to = "XXXX@XXX.COM"
        #Las direcciones del to deben indicarse con signos de mayor que 
        #y menor que.
        $pc = get-content env:computername
        $subject = "XXXXXXXXXXXXXX"
        $smtpserver = "X.X.X.X"
    
    
        #Con Out-String formateamos el texto
        $body = Get-Content $file | Out-String
    
    
        foreach ($recipient in $to)
        {
            write-host "Enviando mail a $to"
            Send-MailMessage -smtpServer $smtpserver -from $from -to $recipient -subject $subject  -body $body
        }
    }
    else
    {
    write-host "Fichero no encontrado"
    }

    Veo que desde powershell no puedo introducir el comando get-mailboxdatabase, tengo que acceder desde la consola de Exchange.

    ¿Cómo puedo hacer para que me funcione todo por powershell y hacer un script todo junto para lanzarlo yo desde una tarea programada?

    Gracias.


     

    viernes, 9 de junio de 2017 10:38

Respuestas

  • Tienes que importar el PSsnapin de Exchange

    Si es Exchange 2010

    Add-PSsnapin Microsoft.Exchange.Management.PowerShell.E2010

    Si es 2013 o superior

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos
    
    
    
    Import-PSSession $Session


    viernes, 9 de junio de 2017 13:16

Todas las respuestas

  • Tienes que importar el PSsnapin de Exchange

    Si es Exchange 2010

    Add-PSsnapin Microsoft.Exchange.Management.PowerShell.E2010

    Si es 2013 o superior

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos
    
    
    
    Import-PSSession $Session


    viernes, 9 de junio de 2017 13:16
  • Como no aclaras que version de Exchange es ... voy a intentar adivinar... tenes Exchange 2013 (Si tenes otra version, mala suerte... no soy adivino de verdad)

    Para conectarte de es un PowerShell a Exchange 2013 tenes que hacer esto...

    $UserCredential = Get-Credential

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<FQDNDeTuPropioExchange2013CAS>/PowerShell/ -Authentication Kerberos -Credential $UserCredential

    Import-PSSession $Session

    Recién después de que estas conectado, podes utilizar los comandos de PowerShell de Exchange.

    Deberías...

    A) Incorporar eso a tu Script

    B) Para automatizarlo, deberías quitar el parámetro de "-Credential" y que se ejecute con una cuenta con permisos de Exchange

    Esteban


    http://nextadmin.blogspot.com

    viernes, 9 de junio de 2017 13:23
  • Perdona no aclarar qué versión era. Se me pasó. Es un exchange 2010
    lunes, 12 de junio de 2017 6:58
  • Tienes que importar el PSsnapin de Exchange

    Si es Exchange 2010

    Add-PSsnapin Microsoft.Exchange.Management.PowerShell.E2010

    Si es 2013 o superior

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos
    
    
    
    Import-PSSession $Session


    Ya lo he conseguido con el ADD-PSSnapin. Muchas gracias!!


    lunes, 12 de junio de 2017 7:29