
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.