Tags: Exchange, Datenbanken, Monitoring
Ein Exchange-Administrator sollte die maximal möglichen Postfachgrößen in der von ihm betreuten Umgebung kennen, egal ob on-prem oder in der Cloud. Bei einer lokalen Installation kann er diese Informationen nutzen, um ein übermäßiges Wachstum der Datenbanken zu verhindern. In der Cloud entfällt diese Aufgabe.
Die Konfiguration der Maximalwerte ist sowohl im Exchange Admin Center (ECP) als auch mittels Exchange-PowerShell möglich.
Exchange 2016/2019
Per Voreinstellung sind in Exchange bereits einige Kontingente gesetzt, welche für alle Benutzer gelten sollten. Zu finden sind diese im Admin Center unter Server => Datenbanken in den Eigenschaften der jeweiligen Datenbank unter Grenzwerte.
Hier ist zu erkennen, dass jedes Postfach per Default 2,3 GB groß werden darf. Diese Schwellenwerte sind von großer Bedeutung, weil ein Admin mit ihnen und der Anzahl der enthaltenen Postfächer das maximale Wachstum einer Datenbank errechnen kann.
Mit der Exchange-PowerShell lassen sich diese Werte wie folgt auslesen:
Get-MailboxDatabase -Identity DB01 | Format-List *quota
Allerdings nutzen nicht alle Organisationen diese Schwellenwerte. Jeder von ihnen kann auf unlimited gesetzt werden, so dass ein Postfach beliebig wachsen darf. Dies macht die Verwaltung eines Exchange-Servers recht schwierig, da auch die Größe der Datenbanken unbegrenzt zunimmt. Das wirkt sich etwa auch auf die Dauer des Backups aus.
Verändern kann man diese Höchstwerte mit PowerShell wie folgt:
Set-MailboxDatabase -Identity DB01 -IssueWarningQuota 19GB `
-ProhibitSendQuota 19.5GB -ProhibitSendReceiveQuota 20GB
Diese Kontingente kann man auch für einzelne Postfächer modifizieren. Im EAC wechselt man dazu beim jeweiligen Benutzer nach Postfachnutzung => Die Kontingenteinstellungen für dieses Postfach anpassen.
Hier ist es natürlich ebenfalls möglich, das Kontingent auf unlimited zu erhöhen und das Postfach unbegrenzt anwachsen zu lassen.
Diese Einstellungen lassen sich auch mit Exchange-PowerShell auslesen:
Get-Mailbox -Identity ernie.meier |
Format-List UseDatabaseQuotaDefaults, IssueWarningQuota, `
ProhibitSendQuota, ProhibitSendReceiveQuota
Wenn UseDatabaseQuotaDefaults auf True steht, werden die Einstellungen aus der Datenbank gezogen. Lautet der Wert auf False, dann wurden diese Parameter speziell für diesen User angepasst.
Wer diese Einstellungen ändern möchte, kann dies mit folgendem PowerShell-Befehl machen:
Set-Mailbox -Identity ernie.meier -IssueWarningQuota 30GB -ProhibitSendQuota 40GB `
-ProhibitSendReceiveQuota 50GB -UseDatabaseQuotaDefaults $false
Falls die Kontingente bisher zu groß oder zu klein waren, sollte der Administrator die aktuellen Postfachgrößen ermitteln, um einen Eindruck von den tatsächlichen Anforderungen der Benutzer zu bekommen:
Get-Mailbox -Database DB01 | Get-MailboxStatistics |
Format-Table displayname, totaldeleteditemsize, totalitemsize
Wer die Daten in Excel oder anderen Tools auswerten möchte, kann auf folgende Weise die Informationen zu allen Postfächern in eine CSV Datei ausgeben:
Get-Mailbox -Filter {recipienttypedetails -eq "UserMailbox"} |
Select-Object alias |
Foreach-Object {Get-MailboxStatistics -Identity $_.alias |
Select-Object DisplayName, Database, `
@{Name="Mailboxsize";expression={$_.TotalItemSize.Value.ToMB()}}} |
Export-csv C:\temp\BenuterpostfaecherGroesse.csv
Exchange Online
In Exchange Online verhält es sich mit den Kontingenten etwas anders als on-prem. Der Administrator muss hier auf keine Datenbanken und keinen Speicherplatz achten.
Die Kontingente hängen dort vom der jeweiligen Lizenz ab, die meisten Postfächer liegen bei 50 GB, können aber auch leicht auf bis zu 100 GB anwachsen. Anders als beim lokalen Exchange lassen sich für einzelne Benutzerpostfächer keine Kontingente einrichten, der Wert ist für alle User gleich.
Wenn ein Benutzer mehr Speicherplatz braucht, dann muss man dafür eine größere Lizenz kaufen, zum Beispiel ein Upgrade von E3 auf E5. Die Überwachung und Pflege von Kontingenten entfallen also für den Administrator.
Dennoch gibt es in PowerShell für Exchange Online einige Befehle, mit denen man die Postfachgrößen im Blick behalten kann. Das folgende Kommando zeigt die Größe aller Postfächer und die Anzahl der darin enthaltenen Elemente:
Get-ExoMailbox | Get-ExoMailboxStatistics |
select DisplayName, ItemCount, TotalItemSize | Sort-Object
Hat man eine Lizenz (Plan), welche nur Postfachgrößen bis zu 50 GB erlaubt, dann kann man dies so verifizieren:
Get-EXOMailbox | Get-EXOMailboxStatistics |
Where-Object {[int64]($PSItem.TotalItemSize.Value -replace '.+\(|bytes\)') -gt "50GB"} |
Sort-Object TotalItemSize -Descending
Select-Object DisplayName, ItemCount, TotalItemSize
Natürlich lassen sich auch die Kontingente für bestimmte User auslesen:
Get-EXOMailbox roland.eich -PropertySets Quota
Fazit
Es gibt insgesamt einen deutlichen Unterschied zwischen einem selbst-gehosteten Exchange und Exchange Online. Bei einer lokalen Installation muss der Admin die Größe der Postfächer und Datenbanken im Auge behalten. Microsoft bietet ihm dafür die Mittel an, um aktuelle Werte anzuzeigen und die Einstellungen zu ändern.
Bei Exchange Online entfallen diese Aufgaben, die Tätigkeit des Administrators verlagert sich auf andere Bereiche. Dennoch kann man auch hier den aktuellen Ressourcenverbrauch mittels PowerShell verfolgen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Roland Eich ist gelernter Fachinformatiker für Systemintegration und in der IT seit über 14 Jahren zu Hause. Roland deckt aufgrund seiner Erfahrungen ein breites Spektrum der Microsoft-Produktpalette ab.
Zudem besitzt er verschiedene Zertifizierungen (MCITP, MCSA und MCSE, ITIL, PRINCE2).
// Kontakt: E-Mail //
Ähnliche Beiträge
Weitere Links