Pesquisar todas as caixas de correio do Exchange 2013 via powershell

1

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

Eu posso encontrar como pesquisar usando a GUI, mas isso vai demorar muito. Comandos do powershell encontrados 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 terá que ser lida do arquivo de texto.

Alguma ideia / exemplo?

EDIT 1: O seguinte quando executado como o administrador de domínio funciona ...

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

mas me fornece 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)
    
por Dude named Ben 07.04.2018 / 05:47

1 resposta

0

OK, depois de muito googling, isso vai me levar até lá. Eu 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 lidará com endereços parciais para facilitar.

Eu atualizarei esta resposta assim que eu tiver o script completo.

    
por 07.04.2018 / 10:41