Pesquise todas as caixas de correio do Exchange 2013 via PowerShell

Pesquise todas as caixas de correio do Exchange 2013 via PowerShell

Tenho uma longa lista de endereços/domínios de e-mail e preciso verificar se alguma de nossas caixas de correio recebeu e-mails deles.

Posso descobrir como pesquisar usando a GUI, mas isso demorará muito. Foram encontrados comandos do PowerShell para o Exchange 365, mas nada para 2013.

Uma saída simples para um arquivo no formato ...

address/domain,Yes|No

é suficiente. A lista de endereços/domínios deverá ser lida em arquivo de texto.

Alguma idéia/exemplo?


EDIT 1: O seguinte, quando executado como administrador do domínio, funciona ...

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

mas me dá uma lista de todas as caixas de correio no seguinte formato:

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

Responder1

OK, depois de muito pesquisar no Google, isso vai me levar até lá. Preciso envolvê-lo em um loop, mas há muitos exemplos para isso.

    [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

O bom é que o SearchQuery irá lidar com endereços parciais, o que facilita.

Atualizarei esta resposta assim que tiver o script completo.

informação relacionada