
Malambo C/peopleimages.com - sto
PowerShell für das Monitoring von Exchange Online verwenden
Mit PowerShell und dem ExchangeOnlineManagement-Modul lassen sich Exchange Online umfassend verwalten, E-Mail-Flüsse analysieren und Aufgaben effizient automatisieren.
Jedes Problem mit E-Mails ist eine Krise. Durch proaktive Maßnahmen und die Überwachung des E-Mail-Flusses in Exchange Online können Sie Probleme frühzeitig erkennen und sicherstellen, dass dieser Dienst ordnungsgemäß funktioniert.
Exchange Online ist der gehostete E-Mail-Dienst von Microsoft, der in Microsoft 365 enthalten ist und von Unternehmen weltweit genutzt wird. Andere wichtige Arbeitsfunktionen sind mit diesem Dienst verknüpft, beispielsweise Kalender- und Kontaktverwaltung, und er lässt sich in andere Microsoft-365-Anwendungen integrieren.
Wenn Benutzer Schwierigkeiten mit Exchange Online haben, können diese ein Hinweis auf größere Probleme sein. PowerShell ist ein Management-Tool, das sich in Microsoft-Umgebungen besonders bewährt hat und zur Überwachung von Exchange Online verwendet werden kann. Mit PowerShell können IT-Experten auf detaillierte Informationen zugreifen, um sicherzustellen, dass die Kommunikationssysteme des Unternehmens effizient und sicher funktionieren.
Warum PowerShell mit Microsoft Cloud-Diensten verwenden?
PowerShell ist eine Befehlszeilen-Shell und Skriptsprache, die IT-Experten zur Automatisierung von Verwaltungsaufgaben in mehreren Microsoft-Produkten und -Diensten verwenden. In Verbindung mit Exchange Online ist PowerShell besonders hilfreich bei der Benutzerverwaltung, der Konfiguration von Postfächern und der Überwachung des E-Mail-Flusses.
Durch die Automatisierung wird der Zeitaufwand für sich wiederholende Aufgaben reduziert, Massenaufgaben werden schneller ausgeführt und das Fehlerrisiko wird minimiert. Darüber hinaus vereinfacht die Automatisierung die Konfigurationsarbeiten in Exchange Online, um Branchenstandards und Vorschriften wie DSGVO und HIPAA einzuhalten.
Was spricht für die Verwendung von PowerShell mit Exchange Online?
Ein Vorteil bei der Verwendung von PowerShell zur Verwaltung von Exchange Online besteht darin, dass es Verwaltungsfunktionen bietet, die über die Benutzeroberfläche des Admin-Portals nicht verfügbar sind. Im Folgenden werden zwei spezifische Bereiche aufgeführt, in denen die Verwendung von PowerShell mit Exchange Online optimal ist.
Verbesserte administrative Kontrolle und Automatisierung
Das Exchange Admin Center (EAC) bietet eine benutzerfreundliche Oberfläche für grundlegende Aufgaben, während PowerShell komplexe und umfangreiche Vorgänge mit nur wenigen Zeilen Code ausführt. Für sich wiederholende Aufgaben wie das Erstellen von Postfächern, Konfigurationsänderungen und die Erstellung von Berichten ist PowerShell ideal. Es spart wertvolle Zeit und reduziert das Fehlerrisiko, sodass es sich ideal für große Unternehmen eignet, in denen die manuelle Verwaltung von Hunderten oder Tausenden von Postfächern unpraktisch ist.
Sie können PowerShell-Skripts so planen, dass sie zu bestimmten Zeiten, beispielsweise außerhalb der Geschäftszeiten, ausgeführt werden, um regelmäßige Wartungsaufgaben durchzuführen. Dadurch werden mögliche Auswirkungen auf den Betrieb des Unternehmens minimiert. Darüber hinaus hilft die Planung bei der Einhaltung von Compliance-Standards, was für Unternehmen, die gesetzliche Vorschriften einhalten müssen, von entscheidender Bedeutung ist.
Erweiterte Funktionen und Anpassungsmöglichkeiten
PowerShell bietet Zugriff auf eine erweiterte Reihe von Funktionen und Einstellungen in Exchange Online, die über das EAC nicht verfügbar sind. Beispielsweise ist PowerShell effektiver bei der Verarbeitung detaillierter Postfachberichte, komplexer abfragebasierter Verteilergruppen und der erweiterten Nachrichtenverfolgung. Durch die Skripterstellung für diese Aufgaben haben Administratoren eine bessere Kontrolle über die Exchange-Umgebung und können Einstellungen und Konfigurationen an die Anforderungen des Unternehmens anpassen.
Dank der Erweiterbarkeit von PowerShell ist die Integration mit anderen Microsoft-365-Diensten und Tools von Drittanbietern möglich, sodass ein umfassenderer Ansatz für die Verwaltung der IT-Infrastruktur entsteht. Durch diese Integration können Administratoren Aufgaben plattformübergreifend automatisieren, Workflows optimieren und eine einheitlichere Verwaltungsumgebung nutzen.
So verbinden Sie PowerShell mit Exchange Online
Um PowerShell für Exchange Online verwenden zu können, ist das ExchangeOnlineManagement-Modul von Microsoft erforderlich. Es wird auch als Exchange Online PowerShell V3-Modul oder EXO V3-Modul bezeichnet.
Diese Version des Moduls ist relativ neu und bietet Administratoren eine moderne und zuverlässige Möglichkeit, eine Verbindung zu Exchange Online herzustellen. Das Modul stellt auch eine Verbindung zu anderen PowerShell-Bereichen her, die mit Exchange Online in Microsoft 365 verbunden sind, wie Security & Compliance und Exchange Online Protection.
Installieren Sie das Modul direkt aus der PowerShell-Galerie mit dem folgenden Befehl:
Install-Module -Name ExchangeOnlineManagement
Nach Abschluss können Administratoren eine Verbindung über den Befehl Connect-ExchangeOnline initiieren, der die Microsoft-365-Anmeldeinformationen des Administrators anfordert und eine sichere Sitzung mit Exchange Online herstellt.
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Was sind die Vorteile des ExchangeOnlineManagement-Moduls?
Das ExchangeOnlineManagement-Modul bietet mehrere Vorteile. Es unterstützt moderne Authentifizierungsmethoden, einschließlich Multifaktor-Authentifizierung (MFA), für zusätzliche Sicherheit beim Verbindungsprozess.
Darüber hinaus aktualisiert Microsoft das Modul regelmäßig, um neue Cmdlets hinzuzufügen und die Funktionalität zu verbessern, damit Administratoren über die neuesten Tools und Funktionen zur Verwaltung der Exchange-Online-Umgebung verfügen.
Die Einfachheit dieser Verbindungsmethode reduziert die Einrichtungszeit und Komplexität, sodass Administratoren sich auf strategischere Aufgaben konzentrieren können. Das Modul lässt sich nahtlos in andere PowerShell-Cmdlets und -Skripte integrieren und sorgt so für eine einheitliche und effiziente Verwaltung.
Überwachen des E-Mail-Flusses in Exchange Online mit PowerShell
Mit PowerShell können Administratoren den E-Mail-Fluss verfolgen und analysieren, um Probleme wie Verzögerungen und Nichtzustellungen zu identifizieren und allgemeine Muster des E-Mail-Verkehrs zu verstehen. PowerShell kann detaillierte Informationen zum E-Mail-Fluss abrufen, um das Troubleshooting, Überwachung und Compliance zu unterstützen.
Das Cmdlet Get-MessageTrace verfolgt beispielsweise Nachrichten auf ihrem Weg durch die Exchange-Online-Umgebung, um detaillierte Informationen über Absender, Empfänger, Betreff und Status jeder E-Mail zu sammeln – alles wichtige Elemente für die Diagnose von Problemen bei der E-Mail-Zustellung.
So verfolgen Sie E-Mails in Exchange Online mit PowerShell
Mit PowerShell können Sie sowohl gesendete als auch empfangene E-Mails in Exchange Online verfolgen, um einen Überblick über die E-Mail-Aktivitäten innerhalb eines Unternehmens zu erhalten. Dies ist auch nützlich, um Audits zur Einhaltung interner Richtlinien durchzuführen oder sogar Sicherheitsvorfälle zu untersuchen.
Das PowerShell-Cmdlet Get-MessageTrace bietet detaillierte Einblicke in diese Aktivitäten. Sie können beispielsweise alle E-Mails verfolgen, die ein Benutzer während eines bestimmten Zeitraums empfängt. Der Befehl Get-MessageTrace kann den an den Benutzer gerichteten E-Mail-Verkehr abrufen und wichtige Informationen wie den Ursprung der E-Mail, Zeitstempel und Betreffzeilen bereitstellen, um eine umfassende Analyse der eingehenden E-Mail-Muster zu erstellen.
Der folgende PowerShell-Befehl verfolgt empfangene E-Mails:
Get-MessageTrace `
-SenderAddress „[email protected]“ `
-StartDate „2023-11-25“ `
-EndDate „2023-11-30“ | `
Select-Object Received, SenderAddress, `
RecipientAddress, Subject, Status

Der PowerShell-Code gibt Details zu allen E-Mails zurück, die zwischen dem 25. November 2023 und dem 30. November 2023 von [email protected] gesendet wurden. Die Ausgabe umfasst den Zeitpunkt, zu dem der Benutzer die E-Mail erhalten hat, die Adresse des Absenders, die Adresse des Empfängers, die Betreffzeile der E-Mail und den Status, der angibt, ob die E-Mail erfolgreich zugestellt wurde oder Probleme aufgetreten sind.
PowerShell bietet einen Überblick über die gesamten E-Mail-Verkehrsmuster, um Trends, Spitzenzeiten der E-Mail-Aktivität und potenzielle Engpässe im E-Mail-Fluss zu identifizieren. Beispielsweise kann PowerShell einen Exchange-Online-Bericht erstellen, indem Daten zu gesendeten und empfangenen E-Mails über längere Zeiträume zusammengestellt werden, um die aktivsten Benutzer, Zeiten mit dem höchsten E-Mail-Verkehr und häufige Betreffzeilen oder Empfänger in gesendeten E-Mails hervorzuheben. Die Analyse dieser Ergebnisse ist hilfreich, um Bereiche zu finden, in denen Anpassungen vorgenommen werden können, um die Effizienz und Zuverlässigkeit des E-Mail-Systems des Unternehmens zu steigern.
Der folgende Befehl sammelt einen umfassenden Datensatz zwischen zwei Daten für gesendete und empfangene E-Mails:
Get-MessageTrace `
-StartDate „2023-11-25“ `
-EndDate „2023-11-30“ | `
Select-Object Date, SenderAddress, `
RecipientAddress, Subject, Status

Der folgende PowerShell-Befehl filtert E-Mails mit dem Schlüsselwort ATP submission in der Betreffzeile aus den letzten 10 Tagen:
Get-MessageTrace `
-StartDate (Get-Date).AddDays(-10) `
-EndDate (Get-Date) | `
Where-Object {$_.Subject -like "*ATP submission*"} | `
Select-Object Date, SenderAddress, `
RecipientAddress, Subject, Status
Um E-Mails zu verfolgen, die von Ihrer Organisation an eine bestimmte externe Domäne gesendet wurden, verwenden Sie den folgenden Befehl:
Get-MessageTrace `
-StartDate "2023-11-25" `
-EndDate "2023-11-30" | `
Where-Object {$_.RecipientAddress -like "*@nasmis.com"}
Um E-Mails zu identifizieren, die nicht zugestellt werden konnten, können Sie nach Status filtern:
Get-MessageTrace `
-StartDate "2023-11-25"
-EndDate "2023-11-30" | `
Where-Object {$_.Status -eq "Failed"}
Das Cmdlet Get-MessageTrace erzeugt eine detaillierte Ablaufverfolgung der E-Mails, die in einem bestimmten Konversations-Thread ausgetauscht wurden. Der folgende Code listet beispielsweise alle E-Mails mit dem Betreff Project Update auf, die zwischen bestimmten Daten im November 2023 gesendet wurden, und enthält detaillierte Informationen zu jeder Nachricht:
Get-MessageTrace `
-StartDate "2023-11-25" `
-EndDate "2023-11-30" | `
Where-Object {$_.Subject -eq "Project Update"} | `
Select-Object Date, SenderAddress, `
RecipientAddress, Subject, Status
So überwachen Sie Postfächer in Exchange Online mit PowerShell
Für eine optimale Leistung und die Einhaltung von Storage-Richtlinien ist es wichtig, die Überwachung der Postfächer in Exchange Online im Auge zu behalten. Wenn ein Benutzer sein Postfachkontingent überschreitet, können eingehende E-Mails möglicherweise nicht zugestellt werden. Das Cmdlet Get-MailboxStatistics in PowerShell ist ein effektives Tool zum Sammeln von Informationen über Exchange Online-Postfächer.
Der folgende PowerShell-Code ermittelt die fünf größten Postfächer in Ihrer Organisation und gibt deren Größe, die Anzahl der Elemente und den Zeitpunkt des letzten Zugriffs aus:
Get-Mailbox `
-ResultSize Unlimited | `
Get-MailboxStatistics | Sort TotalItemSize -Descending | `
Select -First 5 DisplayName, TotalItemSize, `
ItemCount, LastLogonTime

Was ist der Unterschied zwischen den Cmdlets Get-MailBox und Get-EXOMailBox?
Zusätzlich zum Cmdlet Get-MailBox können Sie auch das Cmdlet Get-EXOMailBox verwenden. Beide unterstützen bei der Verwaltung von Postfächern in Exchange Online, gehören jedoch zu unterschiedlichen PowerShell-Modulen und weisen einige unterschiedliche Merkmale auf.
Das Cmdlet Get-Mailbox ist integraler Bestandteil des älteren Exchange-Online-PowerShell-Moduls, allgemein bekannt als Exchange V1, das in PowerShell enthalten ist. Dieses Cmdlet ruft eine Vielzahl von Postfacheigenschaften und -informationen ab, wie umfassende Details zu verschiedenen Postfachtypen, einschließlich Benutzer-, freigegebenen und Ressourcenpostfächern sowie deren Funktionen und Konfigurationen.
Get-Mailbox ist gut in andere Cmdlets im V1-Modul integriert und somit eine vertraute und zuverlässige Wahl für Benutzer mit Erfahrung in der Verwaltung von lokalen Exchange-Servern.
Get-EXOMailbox hingegen gehört zum ExchangeOnlineManagement PowerShell-Modul oder V3-Modul, das einen moderneren und effizienteren Ansatz darstellt, der besonders für große Unternehmen von Vorteil ist. Get-EXOMailbox erfüllt zwar einen ähnlichen Zweck wie Get-Mailbox, verwendet jedoch REST-basierte APIs für eine schnellere Leistung, insbesondere bei der Arbeit mit einer großen Anzahl von Postfächern oder bei der Ausführung komplexer Skriptszenarien in Exchange Online. Get-EXOMailbox bietet eine schnellere Datenabfrage, reduzierte Drosselung und Unterstützung für moderne Authentifizierungsmethoden wie MFA. Get-EXOMailbox eignet sich besser für leistungsintensive Umgebungen und sollte die Lebensdauer von Verwaltungsskripten verlängern.
Beispielsweise suchen die Befehle Get-EXOMailBox und Get-EXOMailboxStatistics im folgenden PowerShell-Skript nach Postfächern, die größer als fünf Megabyte sind:
Get-EXOMailbox -ResultSize Unlimited | `
Get-EXOMailboxStatistics | `
Where-Object {[int64]($PSItem.TotalItemSize.Value -replace '.+\(|bytes\)') -gt "5MB"} | `
Sort-Object TotalItemSize -Descending | `
Select-Object DisplayName, ItemCount, TotalItemSize, LastLogonTime

Der folgende Befehl verwendet die Befehle Get-MailBox und Get-MailboxStatistics, um unbefugten Zugriff auf Postfächer zu erkennen:
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$mailboxStats = Get-MailboxStatistics -Identity $_.Identity
[PSCustomObject]@{
Mailbox = $_.DisplayName
LastLogonTime = $mailboxStats.LastLogonTime
}
} | Format-Table -AutoSize
So durchsuchen Sie das einheitliche Überwachungsprotokoll mit PowerShell
Das Cmdlet Search-UnifiedAuditLog führt Überwachungsaufgaben in Exchange Online aus, darunter die Suche in den Überwachungsprotokollen nach Benutzer- und Administratoraktionen in Postfächern. Stellen Sie sicher, dass das einheitliche Überwachungsprotokoll in Ihrem Mandanten aktiviert ist. Seit Juli 2023 ist es standardmäßig für Microsoft 365 E3/E5 aktiviert.
Das folgende PowerShell-Beispiel gibt bestimmte Aktivitäten in Postfächern aus den letzten 90 Tagen aus:
$startDate = (Get-Date).AddDays(-90)
$endDate = Get-Date
$recordTypes = 1
$auditLogs = Search-UnifiedAuditLog `
-StartDate $startDate `
-EndDate $endDate `
-RecordType $recordTypes
$auditLogs | Select-Object CreationDate, Operations, AuditData | `
Format-Table -AutoSize

So beheben Sie Probleme mit Exchange Online
Probleme mit Exchange Online, die E-Mail-Dienste unterbrechen, müssen schnell behoben werden. Zu den häufigsten Problemen gehören Fehler bei der E-Mail-Zustellung, Verbindungsprobleme und Leistungsprobleme. Mit PowerShell können Sie diese Probleme diagnostizieren und beheben.
So identifizieren Sie Berichte über nicht zugestellte E-Mails
Es gibt mehrere Gründe, warum E-Mail-Zustellungsfehler in Exchange Online auftreten, wie falsche E-Mail-Adressen, Serverprobleme oder Richtlinienbeschränkungen. Um Nichtzustellungsberichte für E-Mails zu finden, die von einem beliebigen Benutzer gesendet wurden, können Sie das Cmdlet Get-MessageTrace verwenden:
Get-MessageTrace `
-StartDate "2023-11-25" -EndDate "2023-11-30" | `
Where-Object {$_.Status -eq "Failed"}
In diesem Beispiel werden alle fehlgeschlagenen E-Mail-Versuche zwischen dem Start- und Enddatum aufgelistet, um Muster oder wiederkehrende Probleme zu identifizieren.
Für eine tiefergehende Analyse können Sie das Cmdlet Get-MessageTraceDetail verwenden, um Details zu einer bestimmten Nachrichtenverfolgung anzuzeigen. Dieser Befehl liefert detaillierte Informationen zum Fehler, die für die Fehlerbehebung entscheidend sind:
Get-MessageTraceDetail `
-MessageTraceId cdd71640-b8b1-4e9e-6463-08dbf12da9cc `
-RecipientAddress [email protected]
So decken Sie Leistungsprobleme in Exchange Online auf
Microsoft verwaltet einen Großteil der zugrunde liegenden Infrastruktur von Exchange Online, sodass es schwierig ist, die Ursache von Leistungsproblemen zu finden. PowerShell kann jedoch genügend Informationen sammeln, um den Fehlerbehebungsprozess zu unterstützen.
Anzeichen für Leistungsprobleme sind ungewöhnlich hohe Aktivitätsniveaus in einem Postfach und eine langsame E-Mail-Zustellung. Dieser PowerShell-Code findet alle E-Mails, die in den letzten 24 Stunden verzögert wurden:
Get-MessageTrace `
-StartDate (Get-Date).AddDays(-1) `
-EndDate (Get-Date) | `
Where-Object {$_.Status -eq "Delayed"}
Manchmal tritt ein Leistungsproblem aufgrund ungewöhnlicher oder nicht autorisierter Aktivitäten auf. Mit Hilfe des Cmdlets Search-UnifiedAuditLog überprüft das folgende PowerShell-Skript, ob zwischen den angegebenen Daten ungewöhnliche Aktivitäten in Postfächern aufgetreten sind:
$startDate = "2023-11-25"
$endDate = "2023-11-30"
$operations = "Move", "MoveToDeletedItems", "SoftDelete", "HardDelete"
$auditLogs = Search-UnifiedAuditLog `
-StartDate $startDate `
-EndDate $endDate `
-Operations $operations `
-RecordType ExchangeItem
$auditLogs | Select-Object CreationDate, UserIds, Operations, AuditData | `
Format-Table -AutoSize
Da Exchange Online ein verwalteter Dienst ist, muss möglicherweise das Support-Team von Microsoft eingreifen und alle von Ihnen festgestellten Probleme beheben.
Monitoring von Exchange Online mit PowerShell
Exchange Online ist Microsofts Cloud-basierter E-Mail-Dienst in Microsoft 365. PowerShell bietet erweiterte Verwaltungs- und Überwachungsmöglichkeiten, die über das Admin-Portal hinausgehen: etwa bei Postfachverwaltung, E-Mail-Fluss-Analyse oder Compliance-Prüfungen. Mit dem ExchangeOnlineManagement-Modul (V3) können Admins automatisiert Aufgaben durchführen, Probleme frühzeitig erkennen und effizient Berichte erstellen. Besonders nützlich sind Cmdlets wie Get-MessageTrace und Get-MailboxStatistics für Monitoring und Fehlerdiagnose.