Durchsuchen Sie alle Exchange 2013-Postfächer über Powershell

Durchsuchen Sie alle Exchange 2013-Postfächer über Powershell

Ich habe eine lange Liste mit E-Mail-Adressen/Domänen und muss überprüfen, ob in einem unserer Postfächer E-Mails von diesen Adressen eingegangen sind.

Ich kann herausfinden, wie ich über die GUI suchen kann, aber das wird zu lange dauern. Habe Powershell-Befehle für Exchange 365 gefunden, aber nichts für 2013.

Eine einfache Ausgabe in eine Datei im Format ...

address/domain,Yes|No

ist ausreichend. Die Liste der Adressen/Domänen muss aus einer Textdatei gelesen werden.

Irgendwelche Ideen/Beispiele?


BEARBEITEN 1: Folgendes funktioniert, wenn es als Domänenadministrator ausgeführt wird …

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

gibt mir aber eine Liste aller Postfächer im folgenden Format:

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

Antwort1

OK, nach langem Googeln werde ich damit dahin kommen. Ich muss es in eine Schleife packen, aber dafür gibt es jede Menge Beispiele.

    [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

Das Gute ist, dass die Suchanfrage auch Teiladressen verarbeiten kann, was die Sache vereinfacht.

Ich werde diese Antwort aktualisieren, sobald ich das vollständige Skript habe.

verwandte Informationen