Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Verwenden Sie das Get-Mailbox-Cmdlet, um die Mailboxliste in Exchange zu exportieren

Verwenden Sie das Get-Mailbox-Cmdlet, um die Mailboxliste in Exchange zu exportieren

Sep 26, 2024

Was ist ein Get-Mailbox-Cmdlet?

Das Get-Mailbox-Cmdlet ist ein Schlüsselbefehl in der Exchange Management Shell (für Exchange Server) und im Exchange Online PowerShell-Modul (für Office 365). Es wird verwendet, um Informationen über Postfächer in einer Exchange-Umgebung abzurufen. Egal, ob es sich um Benutzerpostfächer, verknüpfte Postfächer, gemeinsam genutzte Postfächer oder Ressourcenpostfächer handelt, mit Get-Mailbox können Administratoren alle Postfächer innerhalb eines bestimmten Bereichs auflisten, wie z. B. einer Datenbank, einem Server oder einer Organisationseinheit, oder detaillierte Eigenschaften für ein einzelnes Postfach abrufen. Sie können auch Ergebnisse filtern, um nur die Postfächer zurückzugeben, die bestimmten Kriterien entsprechen.

Das PowerShell-Cmdlet Get-Mailbox unterstützt viele Parameter, die verwendet werden können, um die zurückgegebenen Informationen anzupassen. Parameter wie -Properties ermöglichen eine umfassende Detailansicht der Mailbox-Attribute. Die Ausgabe von Get-Mailbox kann leicht in CSV- oder JSON-Formate exportiert werden, was die Integration mit anderen Tools und Plattformen erleichtert. Das Cmdlet Get-Mailbox bietet auch die Flexibilität des PowerShell-Scriptings in Exchange-Umgebungen.

Verfügbarkeit sowohl bei Exchange vor Ort als auch bei cloudbasierten Diensten

Das Get-Mailbox PowerShell-Cmdlet ist sowohl in lokalen Exchange Server-Umgebungen als auch in Exchange Online (Office 365) verfügbar, obwohl es Unterschiede in der Implementierung und den verfügbaren Funktionen gibt. Es wurde als Teil der Exchange Management Shell in Exchange Server 2007 eingeführt.

On-Premises Exchange Server

Get-Mailbox ist verfügbar in Exchange Server 2010, 2013, 2016 und 2019. Get-Mailbox wird über die Exchange Management Shell (EMS) in lokalen Exchange-Umgebungen oder über PowerShell verwendet, indem das Exchange-Modul geladen wird. Es beinhaltet Parameter zum Filtern nach Datenbank, Organisationseinheit, Empfängertyp und mehr. Gibt verschiedene Postfacheigenschaften aus, wie Name, E-Mail-Adresse und Postfachdatenbank.

Exchange Online (Office 365)

Get-Mailbox über PowerShell kann für Exchange Online verwendet werden, das über Remote-PowerShell-Verbindungen zugegriffen wird. Dieses Modul bietet Cloud-basierte Managementfunktionen und wird aus der Ferne zugegriffen. Ähnlich wie bei Exchange vor Ort, kann es jedoch zusätzliche Parameter oder Funktionen enthalten, die für die Cloud-Umgebung optimiert sind. Die Ausgabe umfasst Eigenschaften, die für das Cloud-Management relevant sind.

Empfehlung für die Verwendung des Get-EXOMailbox-Cmdlets in Exchange Online

Das Cmdlet Get-EXOMailbox ist Teil des Exchange Online PowerShell-Moduls und wird verwendet, um Informationen über Postfächer in Exchange Online (Teil von Office 365) abzurufen. Dieses Cmdlet ist eine Alternative zu Get-Mailbox mit Verbesserungen für Exchange Online. Get-EXOMailbox ist für Cloud-Umgebungen optimiert und kann eine bessere Leistung und zusätzliche, speziell für Office 365 entworfene Funktionen bieten. Dieses Cmdlet bietet fortgeschrittenere Filter- und Abfrageoptionen, die insbesondere in einer Cloud-basierten Einrichtung nützlich sind und eine bessere Integration mit anderen Office 365-Diensten und -Funktionen ermöglicht.

Empfehlungen für die Verwendung von Get-EXOMailbox

  • Wenn Sie in Exchange Online arbeiten, verwenden Sie Get-EXOMailbox anstelle von Get-Mailbox für optimierte Leistung und cloud-spezifische Funktionen.
  • Verwenden Sie den -Filter-Parameter, um effizient Untergruppen von Postfächern anhand spezifischer Kriterien abzurufen, wodurch die Belastung verringert und die Abfrageleistung verbessert wird.
  • Für große Organisationen verwenden Sie -ResultSize Unlimited, um sicherzustellen, dass Sie alle relevanten Postfächer erfassen. Beachten Sie die Leistungsimplikationen bei sehr großen Datensätzen.
  • Verwenden Sie Get-EXOMailbox in PowerShell-Skripten für automatisierte Berichterstellung, Verwaltung und Wartungsaufgaben in Exchange Online.

Funktion des Get-Mailbox Cmdlet

Das Cmdlet Get-Mailbox in Exchange Server und Exchange Online wird verwendet, um detaillierte Informationen über Postfächer zu erhalten. Das Cmdlet ändert keine Daten, seine Hauptfunktion besteht darin, Postfacheigenschaften und -konfigurationen zu sammeln und anzuzeigen, dazu gehören Daten über Postfachgrößen, Kontingente, die Anzahl der Elemente, die letzte Zugriffszeit und vieles mehr. Das Cmdlet bietet Flexibilität bei der gezielten Auswahl bestimmter Postfächer, Postfachgruppen oder aller Postfächer, abhängig von den verwendeten Parametern.

Zweck

Das Cmdlet Get-Mailbox ruft Informationen über Postfächer ab, einschließlich Benutzerpostfächern, gemeinsam genutzten Postfächern, Ressourcenpostfächern (wie Raum-, gemeinsam genutzte und Gerätepostfächer) und anderen. Es liefert Details wie Postfacheigenschaften, Standort und Konfiguration.

Primäre Verwendungszwecke

Listen von Postfächern für Berichtszwecke generieren, wie das Auditieren von Postfachtypen, Standorten und Attributen. Abrufen der für die Verwaltung von Postfächern benötigten Details, wie das Konfigurieren von Postfacheinstellungen oder das Durchführen von Massenoperationen. Unterstützung bei der Diagnose von Problemen durch Bereitstellung postfachspezifischer Informationen bezüglich Konfigurationen, Kontingenten und mehr.

Operation

Wenn Sie das Cmdlet Get-Mailbox ausführen, fragt es die Exchange-Verzeichnisdienste, Active Directory in lokalen Umgebungen oder das Exchange Online-Verzeichnis in Office 365 ab, um Mailboxinformationen abzurufen. Das Cmdlet holt Daten aus der Mailbox-Datenbank oder Verzeichnissen und präsentiert sie basierend auf den angegebenen Parametern. Dazu gehören Eigenschaften wie E-Mail-Adressen, Mailboxgrößen und mehr.

Ausgabe

Standardmäßig zeigt Get-Mailbox eine Reihe gängiger Eigenschaften wie DisplayName, PrimarySmtpAddress, Database und Recipient Type an. Die Ausgabe kann mit Select-Object angepasst werden, um zusätzliche oder spezifische Eigenschaften anzuzeigen.

Parameter

Parameter wie -Identity, -Database, -OrganizationalUnit und -Filter ermöglichen es Ihnen, die Suche auf spezifische Postfächer oder Postfachgruppen basierend auf Kriterien wie Datenbankstandort, organisatorische Einheit oder benutzerdefinierte Attribute einzugrenzen. -ResultSize erlaubt Ihnen, die Anzahl der zurückgegebenen Ergebnisse zu steuern, was hilfreich ist, um die Leistung zu verwalten und sich auf relevante Datensubsets zu konzentrieren. Get-Mailbox unterstützt viele andere Parameter für weitere Aufgaben.

Erforderliche Berechtigungen zum Ausführen des Get-Mailbox-Cmdlets

Bestimmte Berechtigungen sind erforderlich, um das Get-Mailbox-Cmdlet in Exchange Server und Exchange Online auszuführen. Diese Berechtigungen legen fest, wer das Cmdlet ausführen kann, um Mailbox-Informationen abzurufen. Diese Berechtigungen werden typischerweise durch rollenbasierte Zugriffskontrolle (RBAC) in Exchange zugewiesen. Diese Rollen umfassen in der Regel „Recipient Management“, „Organization Management“ oder „View-Only Organization Management“. Unten finden Sie einen detaillierten Überblick über die für die Ausführung des Get-Mailbox-Cmdlets erforderlichen Berechtigungen.

Exchange Server (On-Premises)

In einer lokalen Exchange Server-Umgebung werden Berechtigungen üblicherweise über role-based access control (RBAC) erteilt. RBAC-Rollen können in verschiedenen Bereichen zugewiesen werden, von der gesamten Organisation bis hin zu spezifischen Postfachdatenbanken.

Rollenverwaltung für Empfänger

Für die allgemeine Verwaltung von Postfächern, einschließlich der Ausführung von Get-Mailbox, werden Benutzer normalerweise der „Recipient Management“-Rollegruppe hinzugefügt. Diese Rollegruppe umfasst Rollen, die das Erstellen, Verwalten und Entfernen von Postfächern sowie andere auf Empfänger bezogene Aufgaben erlauben.

Rolle des Organization Management

Für administrative Privilegien auf hoher Ebene, einschließlich der Fähigkeit, alle Postfach-bezogenen Cmdlets auszuführen, kann die „Organization Management“-Rolle verwendet werden, die Berechtigungen für die gesamte Exchange-Organisation erteilt.

Rolle für ausschließlich lesendes Organisationsmanagement

Diese Rolle gewährt schreibgeschützten Zugriff auf Organisationseinstellungen, einschließlich der Möglichkeit, Get-Mailbox auszuführen, jedoch ohne die Berechtigung, Einstellungen zu ändern.

Benutzerdefinierte RBAC-Rollen

Sie können auch benutzerdefinierte Rollen erstellen, die speziell das Get-Mailbox-Cmdlet enthalten und die Berechtigungen an spezifische Bedürfnisse anpassen, ohne weitergehenden Zugriff als nötig zu gewähren.

Exchange Online (Office 365)

In Exchange Online für Get-Mailbox werden Berechtigungen ähnlich über RBAC, Teil der gesamten Office 365-Berechtigungsstruktur, verwaltet, alle oben genannten Rollen für den lokalen Exchange-Server sind ebenfalls verfügbar, aber es gibt einige weitere hochrangige Rollen, die unten aufgeführt sind, die ebenfalls Berechtigungen haben, das Get-Mailbox-Cmdlet auszuführen.

Globaler Administrator

Benutzer mit der Rolle des Globalen Administrators haben die Berechtigung, Get-Mailbox zusammen mit anderen administrativen Cmdlets in der gesamten Exchange Online-Organisation auszuführen.

Rolle des Exchange-Administrators

Spezifisch für Exchange Online ermöglicht die Rolle des Exchange-Administrators die notwendigen Berechtigungen, um Exchange-Einstellungen und Objektverwaltung zu steuern, einschließlich der Ausführung von Get-Mailbox.

Angepasste Administratorrollen

Office 365 ermöglicht die Erstellung von angepassten Administratorrollen, ähnlich wie bei Exchange On-Premises. Eine benutzerdefinierte Rolle kann speziell das Cmdlet Get-Mailbox enthalten, zusammen mit allen anderen erforderlichen Cmdlets, um eine präzise Kontrolle über die Berechtigungen zu bieten.

Syntax für das Get-Mailbox-Cmdlet

Grundlegende Syntax

Die einfachste Verwendung des Get-Mailbox-Cmdlets besteht darin, alle Postfächer mit PowerShell abzurufen. Das Cmdlet gibt eine Zusammenfassungsliste aller Postfächer zurück, wenn es ohne Parameter verwendet wird, einschließlich primärer Attribute wie DisplayName, Alias, ServerName, ProhibitSendQuota und anderen, je nach Umgebung.

      Get-Mailbox
      
Image

Allgemeine Syntax

Die allgemeine Struktur des Get-Mailbox mit mehreren Parametern ist wie folgt.

      Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
      

Unten ist die allgemeine Syntax mit einem Parameter

      Get-Mailbox [-Parameter <value>]
      

Häufig verwendete Get-Mailbox-Parameter

Folgende sind häufig verwendete Get-Mailbox-Parameter:

Get-Mialbox-Parameter

Syntax

-Identity-Parameter

Get-Mailbox -Identity “BarbaraCole”

-Filter-Parameter

Get-Mailbox -Filter {Name -like “Bar*”}

Get-Mailbox -Filter {DisplayName -like “Bar*”}

Get-Mailbox -Filter {CustomAttribute1 -like ‘TeamA’}

-Datenbankparameter

Get-Mailbox -Database „ Mailbox Database 1767124038″

-OrganizationalUnit-Parameter

Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL”

-Schiedsparameter

Get-Mailbox -Arbitration

-AuditLog-Parameter

Get-Mailbox -AuditLog

-RecipientTypeDetails-Parameter

Get-Mailbox -RecipientTypeDetails SharedMailbox

-ResultSize-Parameter

Get-Mailbox -ResultSize 10

-SoftDeletedMailbox-Parameter

Get-Mailbox -SoftDeletedMailbox

-Anr

Get-Mailbox -Anr “Adita”

-SortBy

Get-Mailbox -SortBy Name

Lassen Sie uns jeden einzelnen davon betrachten

-Identity-Parameter

Der -Identity-Parameter gibt das Postfach an, das abgerufen werden soll. Er kann verschiedene Arten von Identifikatoren akzeptieren, wie die Postfach-GUID, Distinguished Name (DN), Domain\Benutzername, User Principal Name (UPN), Legacy Exchange DN, SMTP-Adresse oder Alias. Dieser Parameter kann verwendet werden, um schnell auf Informationen über ein bestimmtes Postfach zuzugreifen.

      Get-Mailbox -Identity "BarbaraCole"
      
Image

-Filter Parameter

Der -Filter-Parameter ermöglicht komplexere Abfragen. Er wird verwendet, um Bedingungen zu definieren, die genau die Gruppe von Postfächern identifizieren, an denen Sie interessiert sind, basierend auf Attributen wie Abteilung, benutzerdefinierten Attributen oder Postfachgröße.

      Get-Mailbox -Filter {Name -like "Bar*"}

Get-Mailbox -Filter {DisplayName -like "Bar*"}

Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
      
Image

-Datenbankparameter

Der -Database-Parameter filtert Postfächer basierend auf der Datenbank, in der sie gespeichert sind. Er ist nützlich für Operationen, die auf spezifische Datenbanken abzielen, wie zum Beispiel während Migrationen oder für datenbankspezifische Berichterstattung.

      Get-Mailbox -Database " Mailbox Database 1767124038"
      
Image

-OrganizationalUnit-Parameter

Der -OrganizationalUnit-Parameter schränkt die Suche auf Postfächer ein, die sich innerhalb einer spezifischen Active Directory-Organisationseinheit befinden. Dies ist besonders praktisch in großen Organisationen mit einer strukturierten OU-Hierarchie.

      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
      
Image

-Schiedsparameter

Der -Arbitration-Schalterparameter ruft Schiedspostfächer ab, die Systempostfächer für die Speicherung organisatorischer Daten sind, wie Administrator-Auditprotokolle, eDiscovery-Informationen und andere systembezogene Aufgaben.

      Get-Mailbox -Arbitration
      
Image

-AuditLog-Parameter

Der -AuditLog-Schalterparameter wird verwendet, um Postfächer für Überwachungsprotokolle abzurufen, die Überwachungsprotokolle für Aktionen enthalten, die von Administratoren und Benutzern durchgeführt wurden. Dies ist wichtig für Compliance und Überwachungszwecke.

      Get-Mailbox -AuditLog
      
Image

-RecipientTypeDetails-Parameter

Dieser Parameter ermöglicht das Filtern der Postfächer basierend auf ihrem Typ, wie UserMailbox, SharedMailbox, RoomMailbox oder EquipmentMailbox, unter anderem. Er erleichtert Operationen, die speziell auf die Verwaltung bestimmter Arten von Postfächern abzielen.

      Get-Mailbox -RecipientTypeDetails SharedMailbox
      
Image

-ResultSize-Parameter

Der -ResultSize-Parameter begrenzt die Anzahl der von dem Cmdlet zurückgegebenen Ergebnisse. Standardmäßig ruft Get-Mailbox bis zu 1000 Postfächer ab. Wenn Sie diesen Parameter auf „Unlimited“ setzen, können Details für alle Postfächer ohne Kürzung abgerufen werden, oder wenn Sie ihn auf eine kleinere Zahl setzen, z. B. 50, werden die Ergebnisse entsprechend dem angegebenen Wert geliefert.

      Get-Mailbox -ResultSize 10
      
Image

-SoftDeletedMailbox-Parameter

Rufen Sie Postfächer ab, die weich gelöscht, aber nicht dauerhaft entfernt wurden, dieser Parameter ist nur für Exchange Online (Office365) verfügbar.

      Get-Mailbox -SoftDeletedMailbox
      
Image

-Anr

Der -Anr (Ambiguous Name Resolution)-Parameter wird in Verbindung mit dem -Identity-Parameter verwendet, um nach einem Postfach zu suchen, bei dem die angegebene Zeichenfolge der tatsächlichen Identität des Postfachs nahe oder ähnlich ist. Dies ist hilfreich, wenn der genaue Name oder Alias des Postfachs nicht bekannt ist.

      Get-Mailbox -Anr "Adita"
      
Image

-SortBy

Dieser Parameter gibt die Eigenschaft an, nach der die Ergebnisse sortiert werden sollen. Wenn Sie beispielsweise -SortBy DisplayName verwenden, werden die zurückgegebenen Postfächer alphabetisch nach dem Anzeigenamen der Postfächer sortiert.

      Get-Mailbox -SortBy Name
      
Image

Allgemeine Parameter

Wie andere Cmdlets in PowerShell unterstützt Get-Mailbox gängige Parameter wie -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable und -OutVariable. Diese Parameter können dabei helfen, die Cmdlet-Mitteilungen zu steuern, Fehler und Warnungen zu behandeln und die Ausgabe in Skripten und Funktionen zu verwalten.

Weitere Parameter verfügbar für Cmdlet

-Archiv: Gibt Postfächer mit aktivierten Archiven zurück

-AuxAuditLog: Gibt Hilfs-Auditprotokoll-Postfächer zurück

-Credential: Gibt Benutzername und Passwort an

-DomainController: Gibt den Domaincontroller an

-GroupMailbox: Gibt nur Microsoft 365-Gruppen zurück

-IgnoreDefaultScope: Ignoriert den Standardempfängerbereich

-InactiveMailboxOnly: Gibt nur inaktive Postfächer zurück

-IncludeInactiveMailbox: Schließt inaktive Postfächer ein

-MailboxPlan: Filtert Ergebnisse nach Mailbox-Plan

-Migration: Gibt Migrationspostfächer zurück

-Überwachung: Gibt Überwachungspostfächer zurück

-PublicFolder: Gibt öffentliche Ordner-Postfächer zurück

-ReadFromDomainController: Liest Informationen vom Domain-Controller

-RemoteArchive: Gibt Remote-Archivpostfächer zurück

-Server: Filtert Ergebnisse nach Exchange-Server

Kombinieren von Parametern

Sie können mehrere Parameter kombinieren, um Ihre Abfrage zu verfeinern. Hier sind einige Beispiele.

  • Das folgende Cmdlet ruft alle Benutzerpostfächer in einer spezifischen Datenbank mit dem Empfängertyp „Benutzer“ ab.
      Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
      
Image
  • Das folgende Cmdlet ruft alle Postfächer mit einem spezifischen benutzerdefinierten Attribut ab, wobei alle Ergebnisse mit -ResultSize verwendet werden.
      Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
      
Image

Indem die Ausgabe des Get-Mailbox-Cmdlets an das Select-Object-Cmdlet weitergeleitet wird, ruft das folgende Beispiel-Cmdlets eine angepasste Liste ab, die den Anzeigenamen, die primäre SMTP-Adresse und das Sendelimit für jedes Postfach aus einer bestimmten OU zeigt. Dieses Format ist besonders nützlich für die Erstellung von Berichten oder Audits.

  • Rufen Sie Postfächer in einer bestimmten OU ab und zeigen Sie nur deren Anzeigenamen und E-Mail-Adressen an.
      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
      
Image
  • Auflistung aller Postfächer mit detaillierten Eigenschaften
      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image
  • Das unten gezeigte komplexere Beispiel kombiniert mehrere Cmdlets, um Postfächer zu identifizieren, die in den letzten 90 Tagen nicht zugegriffen wurden.
      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
      
Image

Anwendungsfälle und Szenarien

Get-Mailbox in Kombination mit seinen Parametern ermöglicht eine Vielzahl von Anwendungen und Szenarien, die ein effektives E-Mail-Systemmanagement, Compliance, Berichterstattung und Fehlerbehebung erleichtern können. Nachfolgend einige Anwendungsfälle und Szenarien.

Mailbox-Auditing und Berichterstattung

Berichte über Postfachgrößen, Kontingente und Nutzung generieren, um die Einhaltung organisatorischer Richtlinien zu gewährleisten. Das untenstehende Cmdlet liefert keine Ergebnisse, Sie können jedoch zum in Export-CSV Cmdlet angegebenen Speicherort gehen und die CSV-Datei öffnen, sie wird wie der untenstehende Screenshot aussehen.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
      
Image

Identifizierung inaktiver oder verwaister Mailboxen

Das Auffinden von Postfächern, die für einen bestimmten Zeitraum nicht zugegriffen wurden, was auf inaktive oder verwaiste Postfächer hinweisen könnte. Dieses Szenario hilft beim Aufräumen des Mailsystems, möglicherweise Ressourcen und Lizenzen freizugeben, indem Postfächer identifiziert werden, die nicht mehr verwendet werden.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
      
Image

Verwaltung von Mailbox-Konfigurationen

Auflistung von Postfächern mit bestimmten Konfigurationen, wie aktivierter Weiterleitung oder spezifischen Postfachfunktionen.

      Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
      
Image

Massenverwaltung

Führen Sie Massenoperationen durch, wie das Verschieben von Postfächern oder das Anwenden von Postfacheinstellungen auf mehrere Postfächer gleichzeitig. Verschieben Sie alle Postfächer von einer Datenbank in eine andere als Teil einer Wartungsaufgabe.

      Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
      
Image

Massenoperationen und Delegationen

Das Auffinden aller freigegebenen oder delegierten Postfächer und die Überprüfung ihrer delegierten Benutzer für Audit-Zwecke.

      Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
      
Image

Festlegen von Kontingenten für Mailboxen

Wenn Sie das Senden und Empfangen von Quoten gemäß Ihren Bedürfnissen festlegen möchten, kann das folgende Cmdlet die Quote mit einem Wert von 5GB einstellen, Sie können Ihren eigenen Wert nach Bedarf verwenden.

      Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
      

Das obige Cmdlet wird keine Ausgabe erzeugen, aber den Wert setzen, Sie können das untenstehende Cmdlet verwenden, um die gewünschte Ausgabe zu überprüfen, die Sie mit dem obigen Cmdlet gesetzt haben.

      Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
      
Image

Fehlerbehebung

Diagnostizieren und beheben Sie Probleme im Zusammenhang mit Postfächern, wie das Identifizieren von Postfächern mit überschrittenen Kontingenten. Ermitteln Sie Postfächer, die ihr Sendelimit überschritten haben, um mögliche Leistungsprobleme zu adressieren.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
      
Image

Management von Organisationseinheiten

Verwalten Sie Postfächer innerhalb einer spezifischen Organisationseinheit (OU), wie zum Beispiel das Anwenden spezifischer Einstellungen oder Konfigurationen. Rufen Sie eine Konfigurationsänderung ab und wenden Sie diese auf alle Postfächer in der „HR“ OU an.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
      

Das obige Cmdlet wird keine Ergebnisse liefern, aber es wird den Wert für die maximale Sendegröße für Nachrichten festlegen, für alle Benutzer innerhalb der angegebenen OU. Verwenden Sie das untenstehende Cmdlet zur Bestätigung.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Select MaxSendSize
      
Image

Zugriff delegieren

Gewähren Sie Zugriff auf Postfächer für administrative oder Supportzwecke. Erteilen Sie Vollzugriffsberechtigungen für ein Support-Postfach für alle Postfächer in einer bestimmten Postfachdatenbank.

      Get-Mailbox -Database “Test3” | Add-MailboxPermission -User "administrator@milkyway.local" -AccessRights FullAccess
      
Image

Überprüfung der Postfachquoteneinstellungen

Die Überprüfung der Postfachquoteneinstellungen ist wichtig, da sie sicherstellt, dass Benutzer die von der Organisation festgelegten Speicherlimits nicht überschreiten und somit die E-Mail-Funktionalität potenziell beeinträchtigen.

Übersicht über das Postfachkontingent

Postfachquoten werden verwendet, um den Speicherplatz zu begrenzen, den ein Postfach nutzen kann. Diese Quoten umfassen Folgendes.

  • Warnschwellenwert für Speicherplatz: Der Schwellenwert, bei dem Benutzer gewarnt werden, dass ihr Postfach sich der Speichergrenze nähert.
  • Sendelimit verbieten: Die Schwelle, ab der Benutzer daran gehindert werden, neue Nachrichten zu senden.
  • Senden und Empfangen Quota verbieten: Die Schwelle, ab der Benutzer daran gehindert werden, neue Nachrichten zu senden oder zu empfangen.

Um die Quoteneinstellungen für ein bestimmtes Postfach zu überprüfen, können Sie das Cmdlet Get-Mailbox gefolgt von der Identität des Postfachs verwenden. Dies wird verschiedene Eigenschaften des Postfachs zurückgeben, einschließlich der Quoteneinstellungen.

      Get-Mailbox -Identity "BarbaraCole" | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UsedDatabaseQuotaDefaults
      
Image

Wenn Sie die Quoteneinstellungen über mehrere oder alle Postfächer in Ihrer Umgebung überprüfen müssen, können Sie das Get-Mailbox-Cmdlet verwenden, ohne eine Identität anzugeben, und die relevanten Quoten-Eigenschaften ausgeben und die Daten in eine CSV-Datei exportieren, was die Analyse und Berichterstattung über Quotenkonfigurationen erleichtert.

      Get-Mailbox -ResultSize Unlimited -Database “Test3” | Select-Object DisplayName,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota
      
Image

Beispiel1: Rückgabe einer Zusammenfassungsliste aller Mailboxen

To return a summary list of all mailboxes in Exchange Online or Exchange Server using PowerShell, use the below cmdlet.

Der folgende Befehl gibt eine Tabelle in Ihrer PowerShell-Konsole aus, die eine Zusammenfassung aller Postfächer mit ihren Anzeigenamen, Aliasen, UPNs, Erstellungsdaten und primären E-Mail-Adressen enthält. Diese Zusammenfassung bietet einen schnellen Überblick, nützlich für Berichte, Audits oder einfach um einen Einblick in die derzeit in Ihrer Exchange-Umgebung eingerichteten Postfächer zu erhalten.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, Alias, UserPrincipalName, WhenCreated, PrimarySmtpAddress | Format-Table -AutoSize
      
Image

Das folgende Cmdlet wird einige weitere Eigenschaften verwenden, z. B. Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota, zusammen mit dem Anzeigenamen und der primären SMTP-Adresse.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,Database,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota | Format-Table -Autosize
      
Image

Beispiel2: Zurückgeben einer Zusammenfassungsliste von Archivpostfächern in einer spezifischen Datenbank

Um eine Zusammenfassungsliste von Archivpostfächern in einer bestimmten Datenbank mithilfe von PowerShell in Exchange Online oder Exchange Server zurückzugeben, können Sie eine Kombination der Cmdlets „Get-Mailbox“ und „Get-MailboxStatistics“ verwenden. Diese Kombination ermöglicht es Ihnen, Postfächer nach ihrer Hosting-Datenbank zu filtern und dann jedes auf ein Archiv zu überprüfen. Unten sehen Sie, wie Sie dies erreichen können.

      Get-Mailbox -Database "Test3" -Archive | Get-MailboxStatistics -Archive | Select-Object DisplayName, TotalItemSize, ItemCount | Format-Table -AutoSize
      
Image

Ausgewählte verwandte Inhalte:

Kombinieren von Get-Mailbox mit anderen Cmdlets (Get-Member, Select-Object, Format-List)

Die Kombination des Get-Mailbox-Cmdlets mit anderen PowerShell-Cmdlets wie Get-Member, Select-Object und Format-List kann Ihnen helfen, Mailbox-Informationen effektiver abzurufen, anzuzeigen und zu formatieren.

Get-Member

Das Cmdlet Get-Member wird verwendet, um die Eigenschaften und Methoden von Objekten zu untersuchen, die von Get-Mailbox zurückgegeben werden. Dies ist besonders nützlich, um zu entdecken, welche Eigenschaften zur Auswahl oder Formatierung verfügbar sind.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Get-Member
      
Image

Select-Object

Das Select-Object-Cmdlet ermöglicht es Ihnen, festzulegen, welche Eigenschaften in Ihrer Ausgabe enthalten sein sollen. Dies ist nützlich, um eine angepasste Ansicht der Postfachinformationen zu erstellen.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress,Database
      
Image

Format-Liste

Das Format-List-Cmdlet formatiert die Ausgabe als Liste und zeigt alle Eigenschaften und ihre Werte an. Dies ist nützlich für eine detaillierte Ansicht der Eigenschaften eines Mailbox-Objekts.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-List DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image

Massenoperationen mit Get-Mailbox und Set-Mailbox

Sie möchten die Postfacheinstellungen für mehrere Postfächer aktualisieren, beispielsweise ein bestimmtes Postfachkontingent festlegen oder die Archivierung aktivieren/deaktivieren.

Der folgende Befehl findet alle Postfächer in „Test3“ und setzt deren Quoteneinstellungen. Er aktualisiert das ProhibitSendQuota, ProhibitSendReceiveQuota und IssueWarningQuota für jedes Postfach.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.Database -eq "Test3" } | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 6GB -IssueWarningQuota 4GB
      
Image

Filter und Sortierungsergebnisse verwenden

Beim Arbeiten mit großen Informationsmengen können Sie den Datensatz genau auf das eingrenzen, was Sie benötigen, und die Sortierung hilft dabei, die Ausgabe für eine bessere Analyse oder Berichterstattung zu organisieren. Die folgenden Cmdlets zeigen, wie Sie Filter- und Sortiermechanismen mit Get-Mailbox verwenden.

Verwendung von Filtern in Get-Mailbox

Filter-Cmdlets ermöglichen es Ihnen, Kriterien anzugeben, um nur die Objekte einzuschließen, die diesen Kriterien entsprechen, in der Ausgabe des Befehls. Sie können Filter direkt in Cmdlets anwenden, die den -Filter Parameter unterstützen oder das „Where-Object“ Cmdlet für komplexere oder nicht unterstützte Filterszenarien verwenden.

      Get-Mailbox -ResultSize Unlimited | Where-Object {$_.CustomAttribute1 -eq "TeamA" -and $_.DisplayName -like "Barb*"}
      
Image

Ergebnisse sortieren mit Get-Mailbox

Sortieren hilft dabei, Ihre Daten in einer sinnvollen Reihenfolge zu organisieren, was das Lesen und Analysieren erleichtert. Sie können das Cmdlet „Sort-Object“ zum Sortieren verwenden. Dieser Befehl ruft alle Postfächer ab und sortiert sie alphabetisch nach ihrem Anzeigenamen.

      Get-Mailbox -ResultSize 10 | Sort-Object DisplayName
      
Image

Exportieren der Ergebnisse in eine CSV-Datei

Um Ergebnisse in eine CSV-Datei zu exportieren, bietet PowerShell das Cmdlet „Export-Csv“, das Eingaben aus der Pipeline entgegennimmt und in eine angegebene CSV-Datei schreibt. Wenn Sie beispielsweise eine Liste von Exchange-Postfächern zusammen mit ihren Größen und Nutzungsdetails exportieren möchten, können Sie das untenstehende Cmdlet verwenden. Sie müssen den Pfad und den Dateinamen für Ihre CSV-Datei im -Path Parameter angeben.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Exports\MailboxDetails.csv" -NoTypeInformation
      

Gruppierung und Formatierung der Ergebnisse

Das Gruppieren und Formatieren von Ergebnissen verbessert die Lesbarkeit Ihrer Datenausgabe erheblich. PowerShell bietet Cmdlets wie Group-Object, Format-Table, Format-List usw., die für diese Zwecke verwendet werden können.

Gruppierungsergebnisse

Der Group-Object-Cmdlet dient dazu, Objekte anhand von Eigenschaftswerten zu kategorisieren. Dies kann besonders nützlich sein, um Postfächer nach Attributen wie Abteilung oder benutzerdefinierten Attributen zu sortieren.

      Get-Mailbox -ResultSize Unlimited | Group-Object -Property CustomAttribute1
      
Image

Formatierung der Ergebnisse

Nachdem die Daten gruppiert wurden – oder ganz allgemein bei der Darstellung beliebiger Daten – kann eine geeignete Formatierung die Ausgabe deutlich zugänglicher machen. Format-Table, häufig mit „ft“ abgekürzt, zeigt Daten in Tabellenform an. Dies ist ideal, wenn du deine Ergebnisse in Spalten sehen möchtest. Du kannst angeben, welche Eigenschaften angezeigt werden sollen und sogar die Spaltenbreite steuern.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-Table DisplayName,UserPrincipalName,WhenCreated,PrimarySmtpAddress,database -AutoSize
      
Image

Verwendung von „Format-List“

Format-List, abgekürzt „fl“, zeigt jede Eigenschaft eines Objekts in einer neuen Zeile an. Dadurch eignet es sich für die detaillierte Anzeige weniger Objekte oder wenn ein Objekt so viele Eigenschaften hat, dass diese in einer Tabelle nicht sinnvoll dargestellt werden können.

      Get-Mailbox -Identity "BarbaraCole" | Format-List DisplayName, PrimarySmtpAddress, EmailAddresses
      
Image

Unterschiede im Cmdlet-Verhalten in Exchange Online

Der Get-Mailbox-Cmdlet verhält sich in Exchange Online etwas anders als in einer lokalen (On-Premises) Exchange-Umgebung. Diese Unterschiede ergeben sich in erster Linie aus der Cloud-basierten Architektur von Exchange Online und dem Mandantenbetrieb (Multi-Tenant), der beeinflusst, wie Administratoren mit Postfächern interagieren und wie groß der Geltungsbereich der Cmdlets ist. Nachfolgend einige wichtige Unterschiede:

  • In Exchange Online können Cmdlet-Operationen gedrosselt (Throttling) werden, um die Gesamtleistung des Dienstes aufrechtzuerhalten; Vorgänge können daher länger dauern oder in größeren Umgebungen eine Stapelverarbeitung (Batch Processing) erfordern, um Drosselungsgrenzen zu vermeiden.
  • Exchange Online umfasst mehr Empfängertypen und Details, um der Vielfalt der Office-365-Dienste gerecht zu werden. Du kannst auf Empfängertypen stoßen, die spezifisch für die Cloud sind und On-Premises nicht existieren.
  • Einige Eigenschaften und Attribute, die in Exchange On-Premises verfügbar sind, sind in Exchange Online aufgrund der gehosteten Umgebung nicht vorhanden oder nicht zugänglich. Postfächer in Exchange Online können zusätzliche, Cloud-bezogene Eigenschaften besitzen, etwa Lizenzinformationen und Mailbox-Pläne.
  • Die Standardausgabe in Exchange Online ist für das Cloud-Management anders zugeschnitten und stellt Informationen bereit, die für Cloud-Administratoren relevanter sind. Der Satz der standardmäßig angezeigten Eigenschaften und die integrierten Filter können von denen in einer On-Premises-Umgebung abweichen.
  • Aufgrund der Multi-Tenant-Architektur von Exchange Online ist der Umfang von Get-Mailbox auf die Postfächer der eigenen Organisation beschränkt. In einer hybriden Umgebung müssen Administratoren zur Verwaltung von On-Premises-Postfächern die Exchange Management Shell der lokalen Umgebung verwenden.
  • Exchange Online ist eng mit anderen Office-365-Diensten integriert und bietet erweiterte Sicherheits- und Compliance-Funktionen. Das Verhalten von Get-Mailbox kann diese Integrationen widerspiegeln, z. B. über Flags oder Eigenschaften im Zusammenhang mit Litigation Hold, eDiscovery oder Advanced Threat Protection.

Verwendung von Get-EXOMailbox für bessere Leistung

Get-EXOMailbox ist ein Cmdlet, das für Exchange-Online-Umgebungen entwickelt wurde. Es bietet im Vergleich zum herkömmlichen Get-Mailbox eine bessere Performance und spezialisierte Funktionen für die Cloud-Natur von Exchange Online. Get-EXOMailbox ist für eine schnellere Ausführung über Remoteverbindungen optimiert und dadurch effizienter beim Abrufen von Postfachinformationen aus Exchange Online. Die Verbindung erfordert moderne Authentifizierung, ggf. einschließlich Multi-Faktor-Authentifizierung (MFA), abhängig von der Konfiguration deiner Umgebung.

      Connect-ExchangeOnline -UserPrincipalName administrator@milkyway.com
      

Nachfolgend einige Beispiele dafür, wie Get-EXOMailbox für gängige administrative Aufgaben eingesetzt werden kann.

      Get-EXOMailbox -ResultSize Unlimited
      
Image

Filtern nach Empfängertyp (Recipient Type)

      Get-EXOMailbox -RecipientTypeDetails SharedMailbox | Format-Table -Autosize
      
Image

Filtern nach Archivstatus (Archive Status)

      Get-EXOMailbox -Filter { ArchiveStatus -eq "Active" } Format-Table -Autosize
      

Die Archivierung in Office 365 ist eine Premiumfunktion; ich habe ArchiveStatus auf None gesetzt, um die folgende Ausgabe zu demonstrieren. Der oben genannte Cmdlet funktioniert, wenn Postfächer mit aktivierter Archivierung vorhanden sind.

Image

Auswählen bestimmter Eigenschaften (Select Specific Properties)

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,UserPrincipalName
      
Image

Sortieren nach Anzeigename (Sort by Display Name)

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,UserPrincipalName | Sort-Object DisplayName
      
Image

Exklusive Get-Mailbox-Parameter für Exchange Online

Der Get-Mailbox-Cmdlet enthält Parameter, die ausschließlich in Exchange Online verfügbar sind oder in einer Cloud-Umgebung relevanter sind als in einer On-Premises-Exchange-Server-Installation. Diese exklusiven Parameter decken cloudtypische Verwaltungsaspekte ab, etwa Lizenzierung, das Auflisten inaktiver Postfächer oder das Abrufen weich gelöschter (soft deleted) Postfächer.

-InactiveMailboxOnly

Mit dem Parameter -InactiveMailboxOnly kannst du die Ergebnisse auf nur inaktive Postfächer beschränken. Dieser Schalter benötigt keinen Wert.
Ein Postfach gilt als inaktiv, wenn es vor dem Soft Delete unter Litigation Hold oder In-Place Hold gestellt wurde.

-MailboxPlan

Dieser Parameter filtert die vom Befehl zurückgegebenen Postfächer auf diejenigen, die einem bestimmten Mailbox-Plan zugeordnet sind. Das ist besonders nützlich in Umgebungen mit mehreren Plänen, z. B. unterschiedlichen Plänen für Abteilungen oder Rollen.

-IncludeInactiveMailbox

Dieser Parameter schließt inaktive Postfächer in die Ergebnisse ein. Inaktive Postfächer stehen üblicherweise mit gelöschten oder deprovisionierten Benutzern in Verbindung, werden aber zu Zwecken der Datenaufbewahrung beibehalten – wichtig für Compliance und eDiscovery.

-SoftDeletedMailbox

Dieser Parameter schließt weich gelöschte Postfächer in die Ergebnisse ein. Soft-Deleted-Postfächer entstehen, wenn ein Postfach über das Office-365-Admin-Center oder via PowerShell gelöscht wird, aber für einen gewissen Zeitraum wiederherstellbar bleibt.

Get-Mailbox Best Practices

Bei der Verwaltung von Postfächern in einer Microsoft-Exchange-Umgebung mit Get-Mailbox sorgen Best Practices für optimale Leistung, Sicherheit und Handhabbarkeit. Hier einige zentrale Empfehlungen:

Begrenze den Umfang deiner Abfragen

Nutze Filter, um die Ergebnisse auf die relevanten Postfächer zu beschränken. Das reduziert die Systemlast und liefert schneller Ergebnisse. Verwende insbesondere in großen Umgebungen Parameter wie -RecipientTypeDetails oder -OrganizationalUnit, um die Resultate einzugrenzen und den Exchange-Server zu entlasten.

Serverseitiges Filtern verwenden

Nutze nach Möglichkeit Cmdlet-Parameter, die das Filtern serverseitig durchführen, anstatt alle Objekte in den Speicher zu laden und clientseitig mit Where-Object zu filtern. Verwende den Parameter -Filter – effizienter und mit weniger Netzwerkdaten.

ResultSize umsichtig einsetzen

Sei vorsichtig mit -ResultSize Unlimited, besonders in großen Umgebungen. Obwohl es für vollständige Operationen nötig sein kann, kann es die Leistung beeinträchtigen. Teile große Aufgaben ggf. in kleinere Chargen auf.

Selektives Abrufen von Eigenschaften

Standardmäßig ruft Get-Mailbox viele Eigenschaften je Postfach ab, die nicht immer benötigt werden. Nutze -Properties, um nur die erforderlichen Eigenschaften zu laden, oder Select-Object, um die Ausgabe zu verschlanken – das verbessert die Performance deutlich.

Effizienter Einsatz von Wildcards

Beim Einsatz von Platzhaltern (Wildcards) (*) in Filtern kann übermäßige oder ungeschickte Nutzung die Leistung beeinträchtigen. Setze Wildcards gezielt, um effiziente Abfragen sicherzustellen.

Sinnvolles Kombinieren mit anderen Cmdlets

Get-Mailbox wird häufig mit anderen Cmdlets kombiniert, z. B. für Änderungen an Postfächern oder Berichte. Stelle sicher, dass der anfängliche Get-Mailbox-Befehl so zielgenau wie möglich ist, bevor du ihn in weitere Cmdlets pipest, um unnötige Verarbeitung zu vermeiden.

Auswirkungen von RecipientTypeDetails verstehen

Dieser Parameter ist sehr hilfreich, um spezifische Postfachtypen (z. B. UserMailbox, SharedMailbox usw.) gezielt anzusprechen. Ein gutes Verständnis ermöglicht präzisere Operationen.

Sicherheit und Compliance

Wenn du Get-Mailbox-Skripte oder -Befehle ausführst, die sensible Informationen offenlegen könnten, halte die Sicherheitsrichtlinien deiner Organisation ein. Beschränke Zugriff auf Skripte und Ausgaben auf autorisiertes Personal.

Skripte testen und validieren

Bevor du in der Produktion Skripte einsetzt, die auf Basis der Get-Mailbox-Ausgabe Änderungen vornehmen, teste sie gründlich in einer Nicht-Produktionsumgebung. Validiere Postfachauswahl und beabsichtigte Änderungen, um unbeabsichtigte Auswirkungen zu vermeiden.

Skripte regelmäßig überprüfen und aktualisieren

Wenn sich deine Exchange-Umgebung weiterentwickelt, sollten es auch deine Skripte und Befehle tun. Regelmäßig prüfen und aktualisieren, um effiziente Methoden zu verwenden und aktuelle Best Practices einzuhalten.

Auf dem neuesten Stand bleiben

Stelle sicher, dass deine PowerShell-Sitzung bzw. dein Modul für Exchange aktuell ist. Microsoft aktualisiert die PowerShell-Cmdlets für Exchange Online regelmäßig und bringt neue Funktionen und Verbesserungen.

Get-Mailbox – Häufige Probleme beheben (Troubleshooting)

Bei der Arbeit mit Get-Mailbox kannst du auf verschiedene Probleme oder unerwartetes Verhalten stoßen. Nachfolgend einige häufige Probleme mit Schritten zur Fehlerbehebung:

Cmdlet nicht erkannt

Es erscheint eine Fehlermeldung, dass „Get-Mailbox“ nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt wird.

Troubleshooting-Schritte

  • Stelle sicher, dass du das Cmdlet in der Exchange Management Shell (für Exchange Server) ausführst oder über Connect-ExchangeOnline mit Exchange Online PowerShell verbunden bist.
  • Prüfe in Exchange Online, ob das Exchange Online PowerShell-Modul installiert und aktuell ist.
  • Überprüfe deine PowerShell-Sitzung – ggf. ist es eine Session, die Exchange-Cmdlets standardmäßig nicht lädt.

Unzureichende Berechtigungen

Du bist mit Exchange Online oder Exchange Server verbunden, erhältst aber Berechtigungsfehler, wenn du „Get-Mailbox“ ausführen willst.

Troubleshooting-Schritte

  • Prüfe, ob dein Konto die nötigen Rechte hat (z. B. Exchange Admin in Exchange Online oder passende RBAC-Rollen in Exchange Server).
  • Stelle für Exchange Online sicher, dass MFA korrekt konfiguriert ist, falls erforderlich.
  • Prüfe On-Premises, ob deinem Konto der Zugriff auf Get-Mailbox explizit gewährt wurde oder es einer Rolle wie Recipient Management zugeordnet ist.

Unvollständige oder unerwartete Ergebnisse

Get-Mailbox läuft fehlerfrei, liefert aber unvollständige oder unerwartete Resultate.

Troubleshooting-Schritte

  • Verwende -ResultSize, um sicherzustellen, dass alle erwarteten Postfächer abgefragt werden (der Standard gibt evtl. nicht alle zurück).
  • Verfeinere deine Abfrage mit -Filter, damit sie die gewünschten Kriterien exakt widerspiegelt.
  • Prüfe, ob server- oder clientseitige Filteroptionen die Ergebnisse begrenzen.
  • In Exchange Online können Throttling-Richtlinien Befehle verzögern – versuche es ggf. nach kurzer Wartezeit erneut.

Leistungsprobleme

Der Cmdlet benötigt lange für die Ausführung, besonders in Umgebungen mit vielen Postfächern.

Troubleshooting-Schritte

  • Begrenze den Abfrageumfang mit -ResultSize, -Filter oder spezifischen Parametern wie -OrganizationalUnit.
  • Teile große Aufgaben in kleinere Batches auf.
  • Stelle in Exchange Online sicher, dass du das neueste Exchange Online Management Module verwendest, das für große Datenmengen optimiert ist.

Verbindungsprobleme

Du hast Konnektivitätsprobleme bei der Verwendung von Get-Mailbox in Exchange Online.

Troubleshooting-Schritte

  • Stelle eine stabile Internetverbindung sicher.
  • Prüfe im Office 365 Service Health Dashboard, ob Dienstvorfälle vorliegen.
  • Stelle die PowerShell-Sitzung erneut her (Connect-ExchangeOnline), da Session-Timeouts oder Netzwerkänderungen die Verbindung stören können.

Einschränkungen durch die Script Execution Policy

Bei der Ausführung von Skripten mit Get-Mailbox treten Ausführungsrichtlinien-Beschränkungen auf.

Troubleshooting-Schritte

  • Prüfe die aktuelle Richtlinie mit Get-ExecutionPolicy.
  • Passe sie bei Bedarf mit Set-ExecutionPolicy an (z. B. RemoteSigned) – unter Berücksichtigung der Sicherheitsimplikationen.

Windows PowerShell Scripting Tutorial (PDF) for Beginners

Learn More

FAQs

Warum wird Get-Mailbox in PowerShell nicht erkannt?

Der Fehler „Get-Mailbox nicht erkannt“ tritt auf, weil das Exchange Management Shell-Modul in deiner PowerShell-Sitzung nicht geladen ist. Dieses Cmdlet ist spezifisch für Exchange Server und benötigt das entsprechende Modul. Für Exchange Online musst du das Exchange Online PowerShell V2-Modul installieren und eine Verbindung herstellen:

      Install-Module ExchangeOnlineManagement
      

Für On-Premises-Exchange stelle sicher, dass du PowerShell über die Exchange Management Shell startest oder das Exchange-Modul importiert hast. Nach der Installation verbindest du dich wie folgt:

      # For cloud environments
Connect-ExchangeOnline

# For on-premises
Import-Module Exchange
      

Der Cmdlet-Name unterscheidet sich außerdem je nach Version: Exchange Online verwendet Get-EXOMailbox für bessere Leistung in großen Umgebungen, während in der klassischen Exchange-Shell Get-Mailbox genutzt wird.

Wie verbindet man sich mit Exchange Online PowerShell?

Die Verbindung zu Exchange Online PowerShell erfordert das Exchange Online Management-Modul und eine korrekte Authentifizierung. Zuerst das Modul in einer erhöhten PowerShell-Sitzung installieren:

      Connect-ExchangeOnline
      

Dann verbinden:

      Connect-ExchangeOnline -UserPrincipalName youradmin@domain.com -ShowProgress
      

Du wirst zur Eingabe deiner Office-365-Anmeldedaten aufgefordert. Für mehr Sicherheit verwende die moderne Authentifizierung; MFA wird im Verbindungsprozess automatisch behandelt. Nach der Verbindung kannst du Get-EXOMailbox anstelle von Get-Mailbox verwenden, um in großen Umgebungen bessere Leistung zu erzielen. Zum Abschluss immer trennen:

      Disconnect-ExchangeOnline
      

Diese Verbindungsmethode bietet vollständigen administrativen Zugriff auf die Verwaltungsfunktionen von Exchange Online.

Wie prüft man Postfachberechtigungen mit PowerShell?

Zum Überprüfen von Postfachberechtigungen kombinierst du Get-Mailbox mit Get-MailboxPermission, um umfassende Zugriffsinformationen zu erhalten. Beispiel, wer auf ein bestimmtes Postfach zugreifen darf:

      Get-MailboxPermission -Identity username@domain.com
      

Dies zeigt Full Access, Send As und Send on Behalf. Für Auswertungen im großen Stil leite die Ausgabe von Get-Mailbox an Get-MailboxPermission weiter:

      Get-Mailbox | Get-MailboxPermission
      

Die Ausgabe enthält AccessRights, User und Deny für jeden Eintrag. Um übermäßige Rechte zu erkennen, filtere mit Where-Object:

      Get-MailboxPermission -Identity username@domain.com | Where-Object {$_.User -notlike "NT AUTHORITY*"}
      

So erhältst du Transparenz darüber, wer auf welche Postfachdaten zugreifen kann – entscheidend für Least-Privilege und Compliance.

Wie exportiert man eine Postfachliste nach CSV?

Einfacher Export:

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, RecipientTypeDetails | Export-CSV -Path "C:\MailboxList.csv" -NoTypeInformation
      

Detaillierter Bericht:

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, TotalItemSize, ProhibitSendQuota, LastLogonTime | Export-CSV -Path "C:\DetailedMailboxList.csv" -NoTypeInformation
      

Select-Object steuert, welche Postfacheigenschaften in den Export gelangen, während Export-Csv die Dateiformatierung übernimmt. In großen Umgebungen empfiehlt sich Get-EXOMailbox in Exchange Online für bessere Performance. Füge Filter hinzu, um bestimmte Postfachtypen zu exportieren:

      Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} | Export-CSV -Path "C:\UserMailboxes.csv" -NoTypeInformation
      

Diese Methode erzeugt strukturierte Datendateien – ideal für Compliance-Berichte, Kapazitätsplanung und Security Audits.

Get-Mailbox vs. Get-EXOMailbox: Was sollte man verwenden?

Get-EXOMailbox ist der moderne Ersatz für Get-Mailbox in Exchange-Online-Umgebungen und bietet deutlich bessere Leistung für große Organisationen. Verwende Get-EXOMailbox bei Arbeiten in Exchange Online – es ist für Cloud-Skalierung optimiert und verarbeitet die Paginierung automatisch. Die Syntax ist nahezu identisch, jedoch verarbeitet Get-EXOMailbox Ergebnisse schneller und ressourcenschonender.
Für Exchange Server On-Premises musst du Get-Mailbox verwenden, da Get-EXOMailbox in der klassischen Exchange Management Shell nicht existiert. In hybriden Umgebungen nutze den passenden Cmdlet je nach Ziel: Get-EXOMailbox für Cloud-Postfächer, Get-Mailbox für On-Premises-Postfächer. Microsoft empfiehlt Get-EXOMailbox für alle neuen Skripte in Exchange Online und eine schrittweise Migration bestehender Skripte für bessere Leistung und zukünftige Kompatibilität.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Kevin Horvatin

Leitender Softwarearchitekt

Kevin Horvatin ist leitender Softwarearchitekt bei Netwrix und verantwortlich für Netwrix Privilege Secure. Als Softwareentwickler mit über 20 Jahren Erfahrung hat er seit ihrer Einführung mit PowerShell und C# gearbeitet.