Busque todos los buzones de correo de Exchange 2013 a través de powershell

Busque todos los buzones de correo de Exchange 2013 a través de powershell

Tengo una larga lista de direcciones/dominios de correo electrónico y necesito verificar si alguno de nuestros buzones de correo ha recibido correos electrónicos de ellos.

Puedo encontrar cómo buscar usando la GUI, pero llevará demasiado tiempo. Se encontraron comandos de PowerShell para Exchange 365 pero nada para 2013.

Una salida simple a un archivo en el formato...

address/domain,Yes|No

es suficiente. La lista de direcciones/dominios deberá leerse desde un archivo de texto.

¿Alguna idea/ejemplo?


EDITAR 1: Lo siguiente cuando se ejecuta como administrador del dominio funciona...

Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery from:<text> -estimateresultonly 

pero me da una lista de todos los buzones en el siguiente formato:

RunspaceId       : f21e1a-42c-4b7-559-90c643f18
Identity         : <blah/blah>
TargetMailbox    :
Success          : True
TargetFolder     :
ResultItemsCount : 1
ResultItemsSize  : 26.71 KB (27,350 bytes)

Respuesta1

Bien, después de mucho buscar en Google, esto me llevará allí. Necesito envolverlo en un bucle, pero hay muchos ejemplos para eso.

    [PS] C:\>$t = (Get-Mailbox -ResultSize unlimited | 
                Search-Mailbox -SearchQuery from:@gmail.com -estimateresultonly  | 
                measure-object -Property ResultItemsCount -Sum).Sum

    WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console in the Exchange Administration Center.

    [PS] C:\>echo $t
    30312

Lo bueno es que SearchQuery manejará direcciones parciales, lo que lo hace más fácil.

Actualizaré esta respuesta una vez que tenga el script completo.

información relacionada